这批代码仅适用于第一次按下按钮,无论我点击哪一个按钮,指定区域都会显示填充了正确值的ListFragment,正如所需。但是,当我单击备用按钮时,它不会替换fragment_container,它只会崩溃。
public void selectTamFragment(View view){
TamInputListFragment lstfragment=(TamInputListFragment)getSupportFragmentManager().findFragmentByTag("lstfragment");
Toast.makeText(getApplicationContext(), "You pressed tamButton", Toast.LENGTH_LONG).show();
if(lstfragment==null){
lstfragment=new TamInputListFragment();
FragmentTransaction transact=getSupportFragmentManager().beginTransaction();
transact.add(R.id.fragment_container, lstfragment, "lstfragment");
transact.commit();
}
}
public void selectVerbFragment(View view){
VerbInputListFragment lstfragment=(VerbInputListFragment)getSupportFragmentManager().findFragmentByTag("lstfragment");
Toast.makeText(getApplicationContext(), "You pressed verbButton", Toast.LENGTH_LONG).show();
if(lstfragment==null){
lstfragment=new VerbInputListFragment();
FragmentTransaction transact=getSupportFragmentManager().beginTransaction();
transact.add(R.id.fragment_container, lstfragment, "lstfragment");
transact.commit();
}
}
答案 0 :(得分:0)
分享崩溃日志,在不知道大量信息的情况下,我猜你正在为这两个片段使用相同的标签名称,因此请尝试为每个片段使用不同的标签名称(lstfragment_1& lstfragment_2)
public void selectTamFragment(View view){
TamInputListFragment lstfragment=(TamInputListFragment)getSupportFragmentManager().findFragmentByTag("lstfragment_1");
Toast.makeText(getApplicationContext(), "You pressed tamButton", Toast.LENGTH_LONG).show();
if(lstfragment==null){
lstfragment=new TamInputListFragment();
FragmentTransaction transact=getSupportFragmentManager().beginTransaction();
transact.add(R.id.fragment_container, lstfragment, "lstfragment_1");
transact.commit();
}
}
public void selectVerbFragment(View view){
VerbInputListFragment lstfragment=(VerbInputListFragment)getSupportFragmentManager().findFragmentByTag("lstfragment_2");
Toast.makeText(getApplicationContext(), "You pressed verbButton", Toast.LENGTH_LONG).show();
if(lstfragment==null){
lstfragment=new VerbInputListFragment();
FragmentTransaction transact=getSupportFragmentManager().beginTransaction();
transact.add(R.id.fragment_container, lstfragment, "lstfragment_2");
transact.commit();
}
}