我知道有很多类似的线程,但我已经完成了它们仍然无法弄清楚问题.我的程序到达处理程序,但它总是返回捕获异常"消息未处理".
我宣布了TextView private TextView chatbox;
在onCreate下我有:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setUpViews();
setUpListener();
}
Run Code Online (Sandbox Code Playgroud)
其中setUpViews()片段如下所示:
private void setUpViews() {
chatbox = (TextView) findViewById(R.id.chatbox);
}
Run Code Online (Sandbox Code Playgroud)
处理器:
public Handler mHandler = new Handler(Looper.getMainLooper()){
@Override
public void handleMessage(Message msg){
try{
chatbox.setText("Got it!");
}catch(Exception e){
Log.i("MYLOG", "Message was not handled.");
}
}
};
Run Code Online (Sandbox Code Playgroud)
main.xml文件中的代码段:
<TextView
android:id="@+id/chatbox"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:textAppearance="?android:attr/textAppearanceLarge" />
Run Code Online (Sandbox Code Playgroud)
Hud*_*son 45
如果将来在这个问题后有些可怜的灵魂谷歌,我终于找到了问题.我有多个片段,一个用于我的ViewPager中的每个选项卡,其中TextView在两个片段中具有相同的id,因此发生冲突.我没有意识到我有相同的ID所以一切似乎都很好,没有错误信息,但文本根本没有改变.只需更改ID.
我希望你的处理程序正在 UI 线程中运行。还可以尝试这样做:将字符串分配给变量并使用该变量,因为它需要字符序列。
String temp = "Got it!";
chatbox.setText(temp);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37239 次 |
| 最近记录: |