我有一個谷歌眼鏡應用程序。它通過BT從移動設備接收數據(但這應該不重要),在我的應用程序中調用處理程序以顯示在玻璃UI上接收數據。我正在使用玻璃上的活動。Google Glass setText()不工作
private final Handler mHandler = new Handler(Looper.getMainLooper())
{
@Override
public void handleMessage(Message msg)
{
switch(msg.what)
{
case 1:
if(msg.arg2 == 1)
{
Toast.makeText(getApplicationContext(), "got argument 1", Toast.LENGTH_LONG).show();
mMyTextView.setText("got argument 1");
}
else if(msg.arg2 == 2)
{
Toast.makeText(getApplicationContext(), "got argument 2", Toast.LENGTH_LONG).show();
mMyTextView.setText("got argument 2");
}
break;
default:
// don't care about other cases, only case 1 is important
}
}
};
mMyTextView是我的活動中的成員變量我填寫onCreate(),填充它在我的處理程序中並沒有什麼區別。
一旦我將我的應用程序從Eclipse推送到玻璃並運行它,它工作得非常好。現在在玻璃上向下滑動,我不處理這個滑動事件,因此Gesture只返回false。以防萬一。
現在我正在「ok玻璃」屏幕上並通過語音命令啓動我的應用程序。吐司顯示,他們應該,但文字視圖不會更新了。在我的處理程序中有斷點,我可以看到所有內容都被正確填充,textView不爲null,它在textView的成員變量中顯示正確的文本。正確的文本不會出現在用戶界面上。從Eclipse再次發佈它,通過語音命令啓動它,並且再次正常工作。
這只是一個猜測,但嘗試在onResume中再次分配TextView成員。即使您在調試時看到非空引用(很好的技術btw),也許這些引用不再有效。讓我知道這是否適合你。 –
我花了毫秒(有一個動態文本)在onResume的時間,並顯示在相同的文本視圖。這工作正常。 – AndyAndroid