0

我将使用主页按钮(操作栏应用程序图标)作为后退按钮。我让它工作,但不是我想要的方式。

我的 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 中,我有以下代码来启用主页按钮的向上导航:

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);
}

最后在 Manifest 中,我使用下面的代码来介绍 MainActivity 作为 LessonDetailActivity 的父类:

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

我希望主页按钮作为向上导航的行为类似于后退按钮,以便在单击它时将我带到 MainActivity,就像在打开 LessonDetailActivity 之前一样。上面的代码并没有这样做,每次我在操作栏中按 Home 时,它​​都会从头开始 MainActivity。

有人可以帮我吗?我还应该说我是新手,所以如果答案很详细,我将不胜感激。

4

0 回答 0