Вызов метода действия изнутри фрагмента - PullRequest
3 голосов
/ 20 февраля 2012

Я пытаюсь передать значение фрагменту из его контейнерной активности.

Я пытался сделать это так:

У меня есть этот метод в деятельности.

public int showMode(){return Mode;} 

И этот метод во Фрагменте:

public int getModeFromActivity(){
    int i;
    i = getActivity().showMode;
        return i;

но в методе фрагмента выдается ошибка: showMode не может быть разрешен или не является полем

Может кто-нибудь помочь мне это исправить? спасибо!

1 Ответ

2 голосов
/ 20 февраля 2012

Ваш подход неверен.

Вот два способа выполнить эту работу в Android.

1.) Определите integer mode внутри вашего фрагмента. Измените конструктор фрагмента на

FragmentName(int mode){
    this.mode = mode;
}

Таким образом, вы можете прочитать переменную режима в своей Деятельности и передать ее Фрагменту при его создании.

2.) Другой способ - это интерфейс, чтобы ваш фрагмент знал, что его родительская активность реализует ваш метод! Таким образом, вы должны изменить фрагмент на что-то вроде этого

InterfaceName mInterface;
FragmentName(MyInterfaceName interface){
    mInterface = interface;
}

public int getModeFromActivity(){
int i;
i = mInterface.showMode();
    return i;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...