Связь с фрагментом из меню и обновление пользовательского интерфейса фрагмента?

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

У меня есть действие и внутри него фрагмент, который выполняет HTTP-запрос и обновляет некоторые значения во фрагменте.

Это отлично работает, теперь я хотел бы иметь меню, чтобы обновить это - меню содержится в действии.

У меня проблема в том, что я не уверен, как обрабатывать вызовы методов. В основном я обнаружил, что getActivity() внутри фрагмента возвращает null, когда я обновляю его из обработчика меню.

Итак, у меня есть этот фрагмент кода в Activity

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

    try {
        handler = new GetData();
    } catch (Exception e) {
        Log.e("FFF", "Exception: " + Log.getStackTraceString(e));
    }

}

GetData() - это мой класс активности java

Теперь в моем событии onOptionsItemSelect, если я использую обработчик сверху (сделав обработчик глобальной переменной), он работает, но getActivity() во фрагменте имеет значение null.

Использование приведенного ниже кода возвращает значение null при вызове в событии onOptionsItemSelected.

GetData handler = (GetData) getFragmentManager().findFragmentById(R.layout.verticalwetherlayout);

Есть ли учебник, объясняющий эту часть? а может я просто что-то не так делаю?

Крис


person Chris Crowe    schedule 17.10.2012    source источник


Ответы (1)


Я нашел свою проблему.

Я использовал фактический идентификатор фрагмента, а не идентификатор экземпляра фрагмента, определенного в действии.

поэтому идентификатор фрагмента был R.layout.verticalwetherlayout

но фактический идентификатор фрагмента в действии был GetData1

<fragment
        android:id="@+id/GetData1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        class="com.example.testapp1.GetData" />

Крис

person Chris Crowe    schedule 17.10.2012