我的rmsg已经取到了 System.out.println打印输出也正常 那我设置textView22为什么就报了空指针呢 还是要把textView22放到别的地方去设置 我是点了一个按钮 开始刷卡 然后返回值通过handler发送 然后接收到以后设置成rmsg
private TextView textView22;
private String rmsg;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
rmsg=(String)msg.obj;
System.out.println("我的卡号是******"+rmsg);
textView22.setText(rmsg);
}
};
textView22没有初始化 需要findviewById()
在发送handler的地方用bundle的方式试试吧
Bundle bundle=new Bundle();
bundle.putString("msg",你的返回值);
Message message=new Message();
message.setData(bundle);
message.what=0x00;
myHandler.sendMessage(message);
接着在回到主线程的handler函数中
String msg1=msg.getData().getString("msg");
然后再进行Textview的设置吧
重写dispatchMessage函数
textView22=(TextView)findViewById(R.id.textView22的id);
在oncreat()方法里,找到你的布局文件setContentView(R.layout.xxxx),xxx表示你真正的布局XML文件,在布局XML文件中找到你的TextView控件,给它
赋一个id属性,如:android:id="@+id/tv_card"。
在setContentView方法下面,写一句textView22 = (TextView)findViewById.(R.id.tv_card);
这样试用textView22.setText(rmsg);的时候就不用空指针了。
如果还有问题欢迎回复。
textview 没有初始化,然后到时setText导致空指针报错
一看到空指针,那就看对象是否实例化,是否为null
看下是不是没有初始化
楼上的都是正解,还有就是,如果发送的过程退出该页面也有可能引发空指针
这代码写的有我往年的风范。有一点救。你要不在每个点前面都判断下是否为空。再调用方法
使用kotlin吧,你就无需担心空指针了..
被调用的对象为null,检查是否初始化、
大哥 你都没初始化 能不空么