由两个按钮

时间:2016-02-25 02:00:36

标签: android android-button android-listfragment

这批代码仅适用于第一次按下按钮,无论我点击哪一个按钮,指定区域都会显示填充了正确值的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();
    }

}

1 个答案:

答案 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();
}
}