使用Handler产生空指针异常的问题
我想用Handler刷新TabActivity中TextView里的文本,通过点击菜单项刷新,可为什么总是报空指针异常
关键代码:
- Java code
private class MyHandler extends Handler { public MyHandler(Looper looper){ super(looper); } @Override public void handleMessage(Message msg) { switch (msg.what) { case SET: Test.this.text1_1_2.setText(msg.obj.toString()); } super.handleMessage(msg); } }; @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, 1, 1, R.string.menu1); return super.onCreateOptionsMenu(menu); } @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { if (item.getItemId() == 1) { Looper looper = Looper.myLooper(); MyHandler myHandler = new MyHandler(looper); myHandler.removeMessages(0); String data = "ABCDE"; Message msg = myHandler.obtainMessage(SET,1,1,data); myHandler.sendMessage(msg); } return super.onMenuItemSelected(featureId, item); }错误信息:
04-13 09:02:22.404: E/AndroidRuntime(919): FATAL EXCEPTION: main
04-13 09:02:22.404: E/AndroidRuntime(919): java.lang.NullPointerException
04-13 09:02:22.404: E/AndroidRuntime(919): at zzx.Android.Test$MyHandler.handleMessage(Test.java:108)
04-13 09:02:22.404: E/AndroidRuntime(919): at android.os.Handler.dispatchMessage(Handler.java:99)
04-13 09:02:22.404: E/AndroidRuntime(919): at android.os.Looper.loop(Looper.java:123)
04-13 09:02:22.404: E/AndroidRuntime(919): at android.app.ActivityThread.main(ActivityThread.java:4627)
04-13 09:02:22.404: E/AndroidRuntime(919): at java.lang.reflect.Method.invokeNative(Native Method)
04-13 09:02:22.404: E/AndroidRuntime(919): at java.lang.reflect.Method.invoke(Method.java:521)
04-13 09:02:22.404: E/AndroidRuntime(919): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-13 09:02:22.404: E/AndroidRuntime(919): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-13 09:02:22.404: E/AndroidRuntime(919): at dalvik.system.NativeStart.main(Native Method)
[解决办法]
查一查ext1_1_2 有没有
[解决办法]
text1_1_2.setText(msg.obj.toString());
---------------------------------------------
text1_1_2 或 msg.obj 为Null,提示说的很清楚了啊