Sto usando due frammenti nella mia attività. Inizialmente aggiungerò un frammento all'attività. Quindi, usando il listener nel primo frammento, voglio sostituirlo con il secondo frammento. Ho provato secondo la mia comprensione, ma non sta sostituendo. Mostra entrambi i frammenti sovrapposti.Come sostituire un frammento con un altro frammento usando l'ascoltatore nel primo frammento
Here is my code:
// MainActivity
public class MainActivity extends Activity {
Fragment Fragment_one;
Button one;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//one=(Button) findViewById(R.id.button1);
//one.setOnClickListener(new View.OnClickListener() {
//@Override
//public void onClick(View arg0) {
// TODO Auto-generated method stub
FragmentManager man=getFragmentManager();
FragmentTransaction tran=man.beginTransaction();
Fragment_one=new Fragment1();
tran.add(R.id.fragment_container, Fragment_one);//tran.
tran.addToBackStack(null);
tran.commit();
//}
//});
}
}
//fragment code
public class Fragment1 extends Fragment{
Button add;
Fragment2 fragment_two;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
//return super.onCreateView(inflater, container, savedInstanceState);
View view=inflater.inflate(R.layout.fragment_1, container,false);
add=(Button) view.findViewById(R.id.button1);
fragment_two =new Fragment2();
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
FragmentTransaction t=getActivity().getFragmentManager().beginTransaction();
t.remove(new Fragment1());
t.replace(R.id.fragment1, fragment_two);t.addToBackStack(null);
t.commit();
//t.addToBackStack(null);
}
});
return view;
}
}
Perché non gonfiare entrambi i frammenti e utilizzare l'ascoltatore per attivarne la visibilità? – brbaker
Puoi aiutarmi come passare? @brbaker –
1) Nel tuo frammento2 xml, imposta la visibilità su GONE; 2) sul pulsante 1, premere findViewById (). SetVisibility (android.view.View.GONE) e findViewById (). SetVisibility (android.view.View.VISIBLE –
brbaker