从另一个Activity更改片段

时间:2015-03-22 13:44:08

标签: android android-fragments

我有两项活动 A,B

A A1,A2,A3 片段

我正在 A 活动的对话框中打开 B 活动

所以活动 A ------->打开对话框(活动 B


现在来自活动B,我想要更改A的片段

例如,B有三个按钮B1,B2和B3

当我点击B1时,对话框将被关闭,A1片段将加载

当我点击B2时,对话框将被关闭,A2片段将加载

当我点击B3时,对话框将被关闭,A3片段将加载

我不知道如何处理这个,我能处理的任何方式请建议我

感谢

2 个答案:

答案 0 :(得分:1)

您可以通过调用活动A中的startActivityForResult(Intent, int)来启动活动B.当在活动B中点击按钮时,您将结果保存在setResult(int resultCode, Intent data)finish()活动B.活动A中现在收到onActivityResult(int requestCode, int resultCode, Intent data)中按下的按钮的信息。从那里你可以制作你的FragmentTransactions。

答案 1 :(得分:1)

第一种方法是Activity类中的startActivityForResult()方法。在ActivityA中,您可以执行以下操作:

Intent intent = new Intent(this, ActivityB.class);
startActivityForResult(intent, REQUEST_CODE, bundle);

然后在ActivityB的按钮B1的onclicklistener中

b1.setOnClickListener(new OnClickListener(){
....
setResult(RESULT_A1);
finish();
...
});

然后回到ActivityA:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     if (resultCode == RESULT_OK) {
         if (resultCode == RESULT_A1) {
             // Call Fragment manager and replace current fragment with fragment A1
         }
     }
 }

您可以对按钮b2 b3和片段a2 a3

执行类似的操作

了解详情:http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent,%20int)

相关问题