Fehler beim Arbeiten mit zwei Fragmenten in Android

Ich bin neu in Android, ich stecke fest, während ich mit Fragment arbeite, jede Hilfe in diesem wird wirklich geschätzt. Ich arbeite mit Fragment für Tablette. Es gibt zwei Fragmente: FragmentA (linkes Fragment) und FragmentB (rechtes Fragment) sind beide Listenfragmente, FragmentB ändert sich entsprechend FragmentA. Es gibt ein weiteres Fragment, FragmentC, das sich beim Klicken auf das Element in Liste von FragmentB vergrößert. Jetzt, nachdem ich das FragmentC aufgeblasen habe und auf FragmentA geklickt habe, stürzt meine App ab. In logcat ist ein Fehler aufgetreten, der zeigt, dass FragmentC nicht in FragmentB umgewandelt werden kann. Ich versuche, dieses Problem in den letzten 10 Stunden zu lösen, aber es wurde kein Ergebnis erzielt.

Dies ist meine MainActivity-Klasse

public class MainActivity extends FragmentActivity implements FragmentA.Communicator{
    FragmentManager manager;
    FragmentB frag2;
    FragmentA frag1;
    @SuppressLint("NewApi")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.frag);
        manager=getSupportFragmentManager();
        FragmentA frag1=(FragmentA ) manager.findFragmentById(R.id.fragment1);
    frag1.setCommunicator(this);


    }

    @SuppressLint("NewApi")
    @Override
    public void respond(int index) {
        // TODO Auto-generated method stub

        frag2= (FragmentB) manager.findFragmentById(R.id.fragment2);
        frag2.changeData(index);
        }
} 

Dies ist meine FragmentA-Klasse

public class FragmentA extends Fragment implements OnItemClickListener{
      Communicator comm;
       ListView list;
      String[] items={"Beverages","Food"};


      @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container,
          Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.menu_list,container, false);
      list=(ListView) view.findViewById(R.id.listView1);


     ArrayAdapter<String> adapter= new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,items);
      list.setAdapter(adapter);
      list.setOnItemClickListener(this);
        return view;
      }
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int i, long arg3) {
        // TODO Auto-generated method stub
        comm.respond(i);

    }

public void setCommunicator(Communicator communicator){
    this.comm=communicator;
}
public interface Communicator{
    public void respond(int index);
}

    }

Dies ist meine FragmentB-Klasse

public class FragmentB extends Fragment implements OnItemClickListener {
ListView listmenu;

String[] listItem1={"item1","item2","item3","item4","item5"};
String[] listItem2={"itemA","itemB","itemC","itemD","itemE"};

 @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
      Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.menu, container, false);
    listmenu=(ListView) view.findViewById(R.id.listView_menu);



    return view;
  }


public void changeData(int index){

    if(index==0){

         ArrayAdapter<String> adapter=new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,listItem1);
  listmenu.setAdapter(adapter);     



            }


        }
    if(index==1){
     ArrayAdapter<String> adapter=new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,listItem2);
  listmenu.setAdapter(adapter);



    }

    listmenu.setOnItemClickListener(this);
}


@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
    // TODO Auto-generated method stub
    //Intent intent = null;

    switch(position){
    case 0: FragmentManager manager=getFragmentManager();
        Fragment frag1=new FragmentC();
        FragmentTransaction ft=manager.beginTransaction();
        ft.replace(R.id.fragment2, frag1,"A");
        ft.addToBackStack("A");
        ft.commit();

        break;
    }

}

} 

Antworten auf die Frage(1)

Ihre Antwort auf die Frage