这似乎很容易,但是尽管我在以下位置进行了检查,但我找不到解决方案:
How to update Android fragment from activity?
How to change fragment's textView's text from activity

我的问题是:

我有4节课:


MainActivity.java
HistoryFragment.java
ConversationDialog.java
CallActivity.java


在MainActivity.java中,其内容2 Fragment包括HistoryFragment和ContactFragment。从HistoryFragment中,我调用ConversationDialog来显示对话框,输入对话框,然后按OK打开CallActivity。

现在,我想从CallActivity中按回去时,必须用新数据更新HistoryFragment。

但是经过研究,我做不到。

请帮我做到这一点。

最佳答案

启动CallActivity时,请使用startActivityForResults,例如:

Intent intent = new Intent(this,  CallActivity.class);
startActivityForResult(intent, 1);


其中1是请求代码,稍后将用于取回您请求的数据。

然后在Call Activity中的onBackPress函数中

Intent intent = new Intent();
intent.putExtra("id","value")
setResult(RESULT_OK, intent);
finish();


然后执行此操作以获取上一个活动中的数据

public void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
     if(resultCode == RESULT_OK){
      String stredittext=data.getStringExtra("id");
  }
}


使用“ id”是您的值的标识符,即“值”。我认为您现在可以轻松完成使用公共变量将数据添加到历史记录片段的其余工作。

关于java - 更新来自另一个 Activity 的数据 fragment ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33565655/

10-09 07:11
查看更多