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
InformationsquelleAutor pavol.franek | 2014-01-31