我有一个应用程序,它有一个MainActivity和两个Fragments。这些片段以这种方式向MainActivity发送参数:
Bundle args = new Bundle();
args.putLong("id",id);
sf.setArguments(args);
然后MainActivity在onCreate()
方法
protected void onCreate(Bundle savedInstanceState) {
private long wayId = getArguments().getLong("id");
}
如何确定哪个片段将此参数发送到MainActivity?
答案 0 :(得分:1)
您可以在分组中添加另一个参数,例如片段的标记。
Bundle args = new Bundle();
args.putLong("id",id);
args.putString("fragmentTag", fragmentTag);
sf.setArguments(args);
并在onCreate()
中检索标记答案 1 :(得分:1)
您可以为每个片段定义单独的inrterface
public class FragmentA extends Fragment {
public static interface FragmentAInterface {
void doSomething(String data);
}
}
public class FragmentB extends Fragment {
public static interface FragmentBInterface {
void doSomething(String data);
}
}
然后在你的活动中:
public class MyActivity extends AppCompatActivity implements FragmentA.FragmentAInterface, FragmentB.FragmentBInterface{
@Override
public void doSomething(String data) {
//Guaranteed to come from Fragment A
}
@Override
public void doOtherThing(String data) {
//Guaranteed to come from Fragment B
}
}