2016-08-12 9 views
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); 
} 

を。

エラーは何ですか?

答えて

1

最初です。 あなたが逃したevas_object_show(ad->conform); それは、目に見えないコントロールを適合させています。

また、アップデートウォッチ機能が毎回動作しない場合は、time_tickコールバック(watch_app_lifecycle_callback_s構造体)で呼び出されるようにしてください。

+0

申し訳ありませんが、すべてのコードを投稿することはできません。 app_time_tick関数もあります。 変更したコードだけを貼り付けました。 – vittochan

+0

あなたのコードがうまくいかない?示されていないコントロールですか?またはテキストは変更されませんか?あなたのコードでは、 "更新"静的な文字列をラベルに設定します。もちろんそれは変化していません。 –

+0

テキストは更新されず、文字列 "Time"のままです。 – vittochan

関連する問題