2
所以,我正在構建一個鵝卵石應用程序,並讓我的頭在一些事情我首先做一些測試與電話到鵝卵石連接。儘管如往常一樣,我陷入了最基本的部分。初始文本沒有被顯示,屏幕只是空白。鵝卵石不顯示文字
下面是相關代碼:
static void change_text(Layer *layer, GContext *ctx){
text_layer_set_text(textLayer, textRecieved);
APP_LOG(APP_LOG_LEVEL_DEBUG, "Changing to: %s", textRecieved);
}
static void window_load(Window *window){
GRect bounds = layer_get_bounds(window_get_root_layer(window));
textLayer = text_layer_create(GRect(5,5, bounds.size.w-10, 30));
textRecieved = (char *) malloc(BUFFER_SIZE);
memset(textRecieved,0,BUFFER_SIZE);
strcpy(textRecieved, "Nothing yet.");
text_layer_set_text(textLayer, textRecieved);
layer_add_child(window_get_root_layer(window), text_layer_get_layer(textLayer));
APP_LOG(APP_LOG_LEVEL_DEBUG, "Recieved: %s", textRecieved);
layer_set_update_proc(text_layer_get_layer(textLayer), change_text);
}
相關變量的定義(在最頂層的文件):
TextLayer* textLayer;
const int BUFFER_SIZE = 100;
char* textRecieved;
如果我註釋掉*layer_set_update_proc(...);*
線,我可以看到的文字。我可能在change_text方法中做錯了什麼。 (它得到window_load
不久後調用。)從我的調試打印輸出是:
[DEBUG] app_message.c:70: Recieved: Nothing yet.
[DEBUG] app_message.c:55: Changing to: Nothing yet.
你爲什麼要叫'layer_set_update_proc'?這覆蓋了文本圖層的繪圖行爲,所以它不會自行繪製。 –
哦!我認爲這是編輯任何元素的正確方法。所以我可以在任何地方改變文字? – SiXoS