fragment1:
public class fragment1 extends Fragment implements View.OnClickListener {
ImageButton but, but1, but2;
ImageView view;
@Override << this one
public View OnCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View myView = inflater.inflate(R.layout.fragment1, null);
but = (ImageButton) myView.findViewById(R.id.imageButton11);
but.setOnClickListener(this);
but1 = (ImageButton) myView.findViewById(R.id.imageButton1);
but1.setOnClickListener(this);
but2 = (ImageButton) myView.findViewById(R.id.imageButton2);
but2.setOnClickListener(this);
return myView;
}
@Override
public void onClick(View v) {
main xxx = (main)getActivity();
switch (v.getId()) {
case R.id.imageButton11:
xxx.str="but1";
break;
..
}}
principale:
Fragment frag1 = new fragment1();
fr1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
fTrans = getFragmentManager().beginTransaction();
fTrans.replace(R.id.frameLayout2, frag1);
fTrans.addToBackStack(null);
fTrans.commit();
}
});
la méthode ne remplace pas la méthode de sa super-classe dans fragment1 (première substitution) mais sans "implemets View.OnClickListener", elle fonctionne
Erreur d'orthographe. Nommez la méthode onCreateView
au lieu de OnCreateView
.
Je ne connais pas le sdk Android mais je pense que vous avez besoin de quelque chose comme ça
Fragment frag1 = new fragment1(){
@Override
public void onClick(View view) {
fTrans = getFragmentManager().beginTransaction();
fTrans.replace(R.id.frameLayout2, frag1);
fTrans.addToBackStack(null);
fTrans.commit();
}
};
retourner votre vue gonflée
public View onCreateView(.....) {
...
...
return InputFragmentView;
}
et changez OnCreateView en onCreateView . vous pouvez appuyer sur ctrl + o pour le préparer ^^
Dans mon cas, je ne l'étendais pas de Fragment. Assurez-vous d'étendre votre fragment de la classe Fragment
.
public class fragment1 extends Fragment implements View.OnClickListener {
@Override
/// public View onCreateView.......
}