Java Android:将消息从类传递到片段
不久前我有一个类似的问题,但写得不太好,也改变了我的结构 当在片段中单击按钮时,我正在向类发送消息。所讨论的类是MessageInterface(实际上不是接口) 我现在想把这个消息发送到另一个片段,并更新其中的一些文本。以下是我迄今为止所做的工作 这是MessageInterface类,它成功地接收了消息,我用日志证明了这一点Java Android:将消息从类传递到片段,java,android,multithreading,android-fragments,fragment,Java,Android,Multithreading,Android Fragments,Fragment,不久前我有一个类似的问题,但写得不太好,也改变了我的结构 当在片段中单击按钮时,我正在向类发送消息。所讨论的类是MessageInterface(实际上不是接口) 我现在想把这个消息发送到另一个片段,并更新其中的一些文本。以下是我迄今为止所做的工作 这是MessageInterface类,它成功地接收了消息,我用日志证明了这一点 public class MessageInterface { private String message; private static M
public class MessageInterface {
private String message;
private static MessageInterface instance = new MessageInterface();
private Message msg = new Message();
private Handler handler;
private Bundle bundle;
public MessageInterface() {
}
public static MessageInterface getInstance() {
return instance;
}
public void sendData(final String str) {
bundle = new Bundle();
handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
message = str;
if (!message.isEmpty()){
Log.i("Interface", "Message Revieved in Interface");
bundle.putString("Message", message );
msg.setData(bundle);
handler.sendMessage(msg);
}
}
});
}
public String getData() {
return message;
};
}
这是接收片段中的代码:
private MessageInterface messageInterface = MessageInterface.getInstance();
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
super.onActivityCreated(savedInstanceState);
statusText = (TextView) getActivity().findViewById(R.id.statusText);
handler2 = new Handler() {
@Override
public void handleMessage(Message msg) {
Bundle bundle = msg.getData();
statusText.setText((bundle.getString("Message")));
Log.i("Status", "Message Revieved in Status Fragment");
}
};
}
这里没有任何记录。消息没有被发送过来
如果有人能给我一些关于如何让这个工作的建议,那就太好了。我也觉得这不是最好的方法,因为我可能会在这里发送大量数据
如果可以的话,我怎么能改进它呢
谢谢。我个人不喜欢这种方法,我建议使用
广播接收器
s或事件总线
在android应用程序的各个部分之间进行通信
有关更多详细信息,请参见和EventBus looks Interest。我去看看。ThanksHi我得到了这个错误:只有创建视图层次结构的原始线程才能接触它的视图。我在一个在自己线程上工作的类中创建了一个新的EventBus事件。如何访问UI线程上的消息。请阅读有关您的评论的文章