Панель действий вверх навигации с фрагментом и активностью

Я собираюсь использовать кнопку "Домой" (значок на панели действий) в качестве кнопки "Назад" Я получил его на работу, но не так, как я хотел.

My MainActivity - это действие, которое содержит (1) ящик, в котором отображается список категорий. И фрагмент, который отображает список предметов в категории, выбранной в ящике.

при щелчке элемента в списке запускается новая функция DetailActivity для отображения подробностей.

здесь начинается проблема: из DetailActivity, когда я нажимаю кнопку "Назад", он возвращается к MainActivity, как это было до щелчка по элементу, чтобы показать подробности. Это то, что я ожидаю. Однако при использовании кнопки "Домой" в качестве навигации вверх запускается MainActivity, как будто я снова открыл приложение. Не отображается список, который ранее отображался.

Я прочитал в документах разработчика, что для фрагментов я должен использовать: .add(detailFragment, "detail") и.addToBackStack(), а затем зафиксировать.

Но что я должен добавить в add(---,"---"). И как мне это использовать?!

это мои коды:

Метод MainActivity отображает содержимое:

    public void refreshDisplay(Context context, View view, String category, int i) {

    List<Lesson> lessonByCategory = datasource.findByCategory(category, i);

    final ListView lv = (ListView) view.findViewById(R.id.listView);
    final ArrayAdapter<Lesson> adapter = new LessonListAdapter(context, lessonByCategory);
    lv.setAdapter(adapter);


    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick (AdapterView<?> parent, View view, int position, long id) {
            Log.i(LOGTAG, "onListItemClick called");

            ArrayAdapter<Lesson> m_adapter = adapter;
            // get the Lesson object for the clicked row
            Lesson lesson = m_adapter.getItem(position);

            Intent intent = new Intent(MainActivity.this, LessonDetailActivity.class);

            intent.putExtra(".model.Lesson", lesson);
            intent.putExtra("isStared", isStared);

            startActivityForResult(intent, LESSON_DETAIL_ACTIVITY);

        }
    });
    }

В моем LESSON_DETAIL_ACTIVITY, который показывает подробное содержание, у меня есть этот код, чтобы включить навигацию для кнопки home:

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {

    // I have some other cases here

    case android.R.id.home:
        NavUtils.navigateUpFromSameTask(this);
        return true;
    }

    return super.onOptionsItemSelected(item);
}

И, наконец, в манифесте я использовал приведенный ниже код, чтобы представить MainActivity как часть LessonDetailActivity:

  <activity
        android:name=".LessonDetailActivity">
        <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.MainActivity" />
    </activity>

Я хочу, чтобы кнопка "Домой" при навигации вверх работала аналогично кнопке "Назад", чтобы при ее нажатии она переходила в режим MainActivity, каким он был до открытия LessonDetailActivity. Приведенный выше код этого не делает, и каждый раз, когда я нажимаю Home на панели действий, он запускает MainActivity с нуля.

Может ли кто-нибудь помочь мне с этим, пожалуйста? Я также должен сказать, что я новичок, поэтому я был бы признателен, если бы ответы были подробными.

0 ответов

Другие вопросы по тегам