向上导航无法正常工作

时间:2014-08-24 14:48:17

标签: android android-navigation

所以我有一个非常简单的项目。它包含两个活动。主要活动有一个导航抽屉和一个碎片容器。第二个活动仅用于在用户与某个片段交互时显示详细信息。

所以我将主要活动设置为我的第二个活动(称为DetailsPage)的父活动,如下所示:

<activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".DetailsPage"
            android:label="@string/title_activity_details_page"
            android:parentActivityName="com.collusion.serviceassistant.MainActivity" >>
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="com.collusion.srviceassistant.MainActivity"/>
        </activity>

并在DetailsPage活动代码中我有以下内容:

public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    switch (item.getItemId()) {
        case R.id.share :
            share();
            return true;

        case R.id.home:
            Log.i("BACK", "Going back!");
            Intent upIntent = NavUtils.getParentActivityIntent(this);
            if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
                // This activity is NOT part of this app's task, so create a new
                // task
                // when navigating up, with a synthesized back stack.
                TaskStackBuilder.create(this)
                        // Add all of this activity's parents to the back stack
                        .addNextIntentWithParentStack(upIntent)
                                // Navigate up to the closest parent
                        .startActivities();
            } else {
                // This activity is part of this app's task, so simply
                // navigate up to the logical parent activity.
                NavUtils.navigateUpTo(this, upIntent);
            }
            return true;
    }
    return super.onOptionsItemSelected(item);
}

现在看来,通过我的日志,与up动作相关的代码没有被执行。每当我在操作栏中点击插入符号或使用后面的硬件键时,应用程序就会退出。有谁知道我在这里做错了什么?我想知道它是否与详细信息页面活动没有扩展ActionBar类这一事实有关:

public class DetailsPage extends Activity{

有没有人有任何想法?

1 个答案:

答案 0 :(得分:1)

根据使用主页按钮导航的Google docs链接,您可能需要使用

  

android.R.id.home 而不是 R.id.home

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    // Respond to the action bar's Up/Home button
    case android.R.id.home:
        NavUtils.navigateUpFromSameTask(this);
        return true;
    }
    return super.onOptionsItemSelected(item);
}

我认为这可能会解决主页导航问题。