J'ai créé une liste à l'intérieur d'un Fragment en utilisant un adaptateur. Je veux afficher une boîte de dialogue différente pour chacun des éléments de la liste quand on clique dessus. J'ai ajouté l'écouteur aux éléments de la liste et écrit le code pour que la boîte de dialogue apparaisse pour l'un des éléments (le second). Cependant, lorsque je clique sur cet élément, l'écran du téléphone s'assombrit mais la boîte de dialogue n'apparaît pas. J'ai ajouté le code pertinent ci-dessous. J'ai beaucoup cherché sur ce problème sur Internet et j'ai essayé beaucoup de choses différentes mais rien ne semble fonctionner. Tout le reste de l'application fonctionne bien.L'écran s'assombrit mais la boîte de dialogue n'apparaît pas
Toutes sortes d'aide seront vraiment appréciées. Merci d'avance!
DialogFragment Classe:
public class GenreDialogFragment extends DialogFragment{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
AlertDialog dialog = builder.create();
builder.setTitle(R.string.title_genre_dialog);
builder.setMessage("Are you sure?");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// on success
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
return dialog;
}
}
Parent Fragment classe dans laquelle je veux la boîte de dialogue apparaisse:
public class FragmentAddWatchedMovie extends ListFragment{
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
SetListAdapter();
SetClickListener();
}
private void SetClickListener() {
ListView listView = (ListView) getView().findViewById(android.R.id.list);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch (position){
case 0:{
FragmentManager manager = getFragmentManager();
GenreDialogFragment fragment = new GenreDialogFragment();
fragment.setTargetFragment(FragmentAddWatchedMovie.this,0);
fragment.show(manager, "GenreDialog_Fragment");
break;
}
case 1:{
}
case 2:{
}
case 3:{
}
case 4:{
}
case 5:{
}
}
}
});
}
Essayez de déplacer « AlertDialog dialogue = builder.create(); » juste au-dessus de la ligne de retour s'il vous plaît. – Cata
Ça a marché! Merci beaucoup :) –