Incompatible types de fragment
Salut j'ai un petit app android où Im à l'aide de fragments de navigation avec tiroir pour le menu. Mais maintenant je veux montrer à mes fragments de dialogue de la fenêtre popup lorsque l'utilisateur clique sur quelque chose et là, je reçois ces erreurs:
MainActivity:
private void displayView(int position) {
//update the main content by replacing fragments
Fragment fragment = null;
switch (position) {
case 0:
fragment = new HomeFragment();
break;
case 1:
fragment = new FindPeopleFragment();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
//update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
} else {
//error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
}
Première erreur que j'obtiens sur fragment = new HomeFragment(); >>types incompatibles.
Deuxième erreur sur HomeFragment à onCreateView méthode >> méthode ne permet pas de remplacer ou de mettre en œuvre une méthode à partir d'un supertype
HomeFragment:
public class HomeFragment extends FragmentActivity {
public HomeFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_home, container, false);
final RelativeLayout rlPolievkaShowDialog=(RelativeLayout)rootView.findViewById(R.id.rlPolievkaButton);
rlPolievkaShowDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
return rootView;
}
private void showDialog() {
DialogFragment newFragment = DialogFragmentAlergeny.newInstance();
newFragment.show(getSupportFragmentManager(), "dialog");
}
}
DialogFragmentAlergeny:
public class DialogFragmentAlergeny extends DialogFragment {
public static DialogFragmentAlergeny newInstance() {
DialogFragmentAlergeny frag = new DialogFragmentAlergeny();
return frag;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity());
View view = getActivity().getLayoutInflater().inflate(R.layout.alergeny_dialog, null);
alertDialogBuilder.setView(view);
alertDialogBuilder.setTitle(getString(R.string.alergeny_dialog_title));
alertDialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
return alertDialogBuilder.create();
}
}
- HomeFragment n'est pas un fragment, mais un FragmentActivity...changement s'étend de la classe de Fragment
- poster un commentaire comme une réponse, vous pourriez peut-être ajouter un peu plus de contexte)
- oui j'ai essayer cette option aussi, mais quand étendre Fragment ensuite la méthode getSupportFragmentManager() n'est pas reconnu
Vous devez vous connecter pour publier un commentaire.
HomeFragment n'est pas un fragment, mais un FragmentActivity...changement s'étend de la classe de Fragment
Comment Résoudre le problème:
android.support.v4.app.Fragment
,android.support.v4.app.DialogFragment
,android.support.v4.app.FragmentActivity
partout où cela est nécessaire.newFragment.show(getActivity().getSupportFragmentManager(), "dialog");
utilisationgetsupportManager
pasFragmentManager()
FragmentManager fragmentManager = getSupportFragmentManager();
pasFragmentManager()
C'est tout merci à tous pour l'aide.