onClickListener n'a pas de travail dans le fragment
public class MainFragment extends Fragment {
public static final String TAG = MainFragment.class.getSimpleName();
private static final String ABOUT_SCHEME = "settings";
private static final String ABOUT_AUTHORITY = "main";
public static final Uri ABOUT_URI = new Uri.Builder().scheme(ABOUT_SCHEME).authority(ABOUT_AUTHORITY).build();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.mainbutton, container, false);
return v;
}
}
Selon le lien ci-dessous:
Comment gérer les clics sur le bouton à l'aide de XML onClick dans des Fragments
public class StartFragment extends Fragment implements OnClickListener{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_start, container, false);
Button b = (Button) v.findViewById(R.id.StartButton);
b.setOnClickListener(this);
return v;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.StartButton:
/* ... */
break;
}
}
}
source ne fonctionne pas trop.
- Il n'y a pas de raison que le deuxième semestre de code ne devrait pas fonctionner à moins que la touche n'est pas trouvée, qui aurait jeté un NullPointerException. La première section de code est inutile.
- Ce que @J. Romero a dit est tout à fait exact. Le code ressemble exactement comme il se doit. Comment êtes-vous sûr que votre écouteur de clics n'est pas déclenché?
- En outre, pourriez-vous poster toute la mise en page (xml), il pourrait y avoir un problème de superposition.
Vous devez vous connecter pour publier un commentaire.
@J. Romero est à droite. Essayez ce code, j'ai changer la méthode onClick et ajouter un peu de journal de débogage.
vous ne pouvez PAS accéder à l'élément de l'INTERFACE utilisateur dans onCreateView méthode - JAMAIS
utilisation onActivityCreated méthode , c'est dire le fragment de l'activité est entièrement créé et prêt à interagir
Essayer de cette façon: