【发布时间】:2014-08-12 08:52:55
【问题描述】:
我的活动中有两个按钮。当我单击 button1 时,我会显示一个片段,当我单击 button2 时,我会在同一个容器中显示另一个片段。对于每个片段,我都设置了一个标签,这样如果再次单击该按钮,我将只替换容器中的片段。问题是当我再次单击第二个按钮时,findFragmentByTag 返回“null”并再次加载片段。 这是我正在使用的代码
Button button1= (Button) findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
MyFragment myFragment = (MyFragment) fragmentManager.findFragmentByTag("button1");
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
if(myFragment==null){
MyFragment fragment = new MyFragment();
fragmentTransaction.add(R.id.container, fragment, "button1");
fragmentTransaction.commit();
}else{
fragmentTransaction.replace(R.id.container, myFragment, "button1");
fragmentTransaction.commit();
}
}
});
Button button2= (Button) findViewById(R.id.button2);
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
MyFragment myFragment = (MyFragment) fragmentManager.findFragmentByTag("button2");// always return null
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
if(myFragment==null){
MyFragment fragment = new MyFragment();
fragmentTransaction.add(R.id.container, fragment, "button2");
fragmentTransaction.commit();
}else{
fragmentTransaction.replace(R.id.container, myFragment, "button2");
fragmentTransaction.commit();
}
}
});
在上面的代码中fragmentManager.findFragmentByTag("button2")总是返回null。 谁能让我知道如何让这个工作。我看过其他帖子,但找不到任何解决方案。
TIA, 维杰拉杰
【问题讨论】:
标签: android android-activity android-fragments