我有一个小问题。我尝试将字符串提供给处理程序。 我尝试了 bundle.putString("key","String"); ,但如果我尝试获取字符串,则会出现 nullpointerException。有人可以告诉我我做错了什么吗?
代码:
Message msg = new Message();
Bundle b = new Bundle();
b.putString("note","4.25");
b.putString("fach", "Math");
Log.d("DEBUG ",b.getString("note")+" "+fach); //--> Here isn't a nullPointerException
msg.setData(b);
handler.sendMessage(msg);
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
Bundle b = msg.getData();
Log.d("DEBUG,HANDLER","note "+b.getString("note")+" fach"+b.getString("fach")); //Throws 2 times null
}
}
希望你能帮助我。抱歉英语不好:)
最佳答案
代码不多,但我会尝试使用 Message.obtain() 而不是 new Message()。我不相信您在 handleMessage() 中收到的消息就是您在 handler.sendMessage() 中发送的消息。必须在同一个线程上调用 sendMessage() 和 handleMessage(),并且您必须确保没有将任何其他 Message 对象放入处理程序的 MessageQueue 中。
关于android - 将字符串放入处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13218310/