Подтвердить что ты не робот

Я получаю сообщение об ошибке "Показать метод (FragmentManager, String)"

Я получаю сообщение об ошибке

Метод show(FragmentManager, String) в типе DialogFragment неприменим для аргументов (FragmentManager, String)

package com.example.test1;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentActivity;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void click(View view) {
        DialogFragment newFragment = new FireMissilesDialogFragment();
        newFragment.show(getFragmentManager(), "missiles");
    }

    public boolean onCreateOtionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}
4b9b3361

Ответ 1

Когда вы используете android.support.v4.app.DialogFragment, вы должны передать show() экземпляр android.support.v4.app.FragmentManager, который можно запросить с помощью вызова getSupportFragmentManager(). Надеюсь, это поможет.

Ответ 2

Проблема заключается в том, что вам нужно использовать пакет поддержки FragmentManager, но вы используете собственный FragmentManager при вызове getFragmentManager(). Попробуйте вызвать getSupportFragmentManager() при инициализации переменной fm

вам также необходимо убедиться, что вы включили DialogFragment из пакета Support, а не из собственного пакета.

Вы можете сделать это, импортировав

import android.support.v4.app.DialogFragment;

Ответ 3

У меня была такая же проблема при запуске кода в прянике. Но отлично работает для ICS. Решение:

вместо этого:

public class MainActivity extends Activity {
}

use extends FragmentActivty

public class MainActivity extends FragmentActivity {
}

Ответ 4

Вы должны использовать android.support.v4.app.FragmentManager вместо android.app.FragmentManager.

Затем вы должны вызвать getSupportFragmentManager(), но не getFragmentManager()

Ответ 5

Я получил это при открытии DialogFragment, хотя я не использовал android.support.v4.app.DialogFragment. Мне пришлось называть getActivity().getFragmentManager(), потому что getSupportFragmentManager() не работал.

Ответ 6

public void onClick(View v) {

    switch (v.getId()) {
    case R.id.btnselectDate:
         DialogFragment newFragment = new DatePickerFragment();
         newFragment.show(this.getFragmentManager(), "datePicker");
         break;

         default:
         break;
     }
}