0
私は腕時計の顔にTizenネイティブアプリを開発しています。テキストをラベルに更新するには?
私はデフォルトのcreate_base_gui機能使用してベースのGUIを作成:
static void
update_watch(appdata_s *ad, watch_time_h watch_time, int ambient)
{
char watch_text[TEXT_BUF_SIZE];
int hour24, minute, second;
int time;
if (watch_time == NULL)
return;
watch_time_get_hour24(watch_time, &hour24);
watch_time_get_minute(watch_time, &minute);
watch_time_get_second(watch_time, &second);
elm_object_text_set(ad->label, "Update");
}
しかし、それは動作しません:私はこのコードを使用してテキストを更新しようとしているupdate_watch機能で
typedef struct appdata {
Evas_Object *win;
Evas_Object *conform;
Evas_Object *label;
Evas_Object *box;
} appdata_s;
static void
create_base_gui(appdata_s *ad, int width, int height)
{
int ret;
watch_time_h watch_time = NULL;
/* Window */
ret = watch_app_get_elm_win(&ad->win);
if (ret != APP_ERROR_NONE) {
dlog_print(DLOG_ERROR, LOG_TAG, "failed to get window. err = %d", ret);
return;
}
evas_object_resize(ad->win, width, height);
/* Conformant */
ad->conform = elm_conformant_add(ad->win);
evas_object_size_hint_weight_set(ad->conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_win_resize_object_add(ad->win, ad->conform);
/* Box */
ad->box = elm_box_add(ad->conform);
evas_object_show(ad->box);
elm_object_content_set(ad->conform, ad->box);
ad->label = elm_label_add(ad->box);
evas_object_size_hint_align_set(ad->label, 0.5, 0.5);
elm_object_text_set(ad->label, "Time");
evas_object_show(ad->label);
elm_box_pack_end(ad->box, ad->label);
ret = watch_time_get_current_time(&watch_time);
if (ret != APP_ERROR_NONE)
dlog_print(DLOG_ERROR, LOG_TAG, "failed to get current time. err = %d", ret);
update_watch(ad, watch_time, 0);
watch_time_delete(watch_time);
/* Show window after base gui is set up */
evas_object_show(ad->win);
}
を。
エラーは何ですか?
申し訳ありませんが、すべてのコードを投稿することはできません。 app_time_tick関数もあります。 変更したコードだけを貼り付けました。 – vittochan
あなたのコードがうまくいかない?示されていないコントロールですか?またはテキストは変更されませんか?あなたのコードでは、 "更新"静的な文字列をラベルに設定します。もちろんそれは変化していません。 –
テキストは更新されず、文字列 "Time"のままです。 – vittochan