Ouvrir Une Autre Activité À L'Aide Du Fragment Bouton
Bon alors j'ai essayé les deux types de code pour obtenir que cela fonctionne et il ne cesse de me donner la force de se ferme lorsque j'appuie sur le bouton pour aller dans une autre Activité. Je suis à l'aide d'un Fragment et il y a un bouton que des Fragments de code mais je n'arrive pas à le faire fonctionner. Je ne suis pas un développeur Android expérimenté, mais je vais essayer de mon mieux pour apprendre.
Voici le code Java:
1ère Méthode
public class About extends Fragment {
Intent intent;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.about, container, false);
intent = new Intent(getActivity(), Contact_Developer.class);
final Button button = (Button) rootView.findViewById(R.id.btnContactDev);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
startActivity(intent);
}
});
return rootView;
}
}
2ème Méthode
public class About extends Fragment {
public void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.about, container, false);
Button button = (Button) rootView.findViewById(R.id.btnContactDev);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(getActivity(), Contact_Developer.class);
getActivity().startActivity(intent);
}
});
return rootView;
}
}
Je ne sais vraiment pas ce qu'il se passe et pourquoi je suis la force de ferme, mais si quelqu'un pouvait m'aider et m'expliquer un peu ce que j'ai fait de mal, ce serait plus que suffisant
publier vos logcat.
OriginalL'auteur Kodi | 2013-12-23
Vous devez vous connecter pour publier un commentaire.
Ne pas manipuler la
onClick
pour le fragment bouton dans le Fragment. Laisse aller c'est parent de l'activité. Et de commencer l'activité de la société mère activité.À assurez-vous que le bouton
onClick
événement est envoyé à l'activité parent, assurez-vous que, dans votreabout.xml
, pour le bouton avecid btnContactDev
, vous avez le paramètre suivant:et dans votre activité parent (parent d'
About
fragment de), vous avez:HTH.
PS: Cette solution est très spécifique à ce que votre exigence. En général, il est préférable de gérer les
onClick
des événements liés à la fragment à l'intérieur du fragment de classe.PS: Oui, comme l'autre solution dit, assurez-vous que vous avez enregistré le
Contact_Developer
de l'Activité dans votreManifest
fichier.Vous n'avez pas besoin de la Vue.OnClickListener si vous mettez en œuvre de la façon que je l'ai dit. Et pour Intention d'erreur, j'ai édité le code - pls de le regarder.
Ok pour le your_package_name_string et your_activity_name_string de quoi ai-je fait là? Les noms de package? Parce que je l'ai essayé et il m'a donné un peu d'erreur. Ce sont les deux seules choses que je n'ai pas
Regardez le code ci-dessus [édité réponse]. J'ai donné l'exemple de ce que vous devez utiliser pour l'emballage et l'activité de les noms. Remplacer com.exemple appropriés nom du package qui vous convient.
Ah je l'ai eu! Merci pour votre aide!
OriginalL'auteur VJ Vélan Solutions
Avez-vous déclaré à la bonne activité dans le AndroidManifest.xml? Chaque activité autre que le premier doit être déclarée à l'intérieur de la balise application, comme ceci:
Si il ne l'est pas, il vous donnera la force de fermeture.
OriginalL'auteur user2845557
Je pense que le problème ici est que l'activité n'est pas prêt.
Je ne recommanderais pas vous suivant harikris de la solution, même si elle fonctionne. C'est généralement une mauvaise pratique de mettre le code (
onClick()
qui gère l'événement click) dans votre fichier XML. Par exemple, il sera très difficile de chasser ce morceau de code vers le bas pour afficher/modifier dans le futur vous-même, pour ne pas mentionner un autre développeur au sein de votre équipe.Je vous suggère d'écouter l'événement, l'activité est prêt, c'est à dire
onActivityCreated()
au sein de votre Fragment de classe. Remplacer la mise en œuvre de la même méthode et d'appeler quelque chose dans votre activité, p. ex. onFragmentReady() comme dans l'exemple ci-dessous.Fragment de classe:
Classe d'activité:
OriginalL'auteur ericn
Pour démarrer une Activité à partir d'un Fragment:
OriginalL'auteur BillyRayCyrus