我不久前也遇到过类似的问题,但写得不是很好,也改变了我的结构。
在片段中单击按钮时,我正在向类发送消息。有问题的类是MessageInterface(实际上不是一个接口)。
我现在想要将此消息发送到另一个片段,并更新其中的一些文本。这是我到目前为止所做的。
这是MessageInterface类,它成功地接收了消息,因为我用日志证明了它。
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");
}
};
}
这里没有记录任何内容。邮件未发送过来。
如果有人能给我一些关于如何使这个工作的提示那么好。我也觉得这不是最好的方法,因为我最终可能会通过这里发送大量数据。
如果可以,我该如何改进呢?
感谢。