如何实现兼容的导航?

时间:2015-02-13 17:21:41

标签: android android-actionbar

编辑:我决定让此应用仅与API 11及更高版本兼容。但是,向上按钮仍然无法正常工作。

我需要在我的Android应用中使用向上按钮功能,我想让它与从API级别11(版本3.0)开始的所有版本兼容。现在,我从版本3.2中的活动导航没有问题。但现在我在Android 4.2上进行测试并且它没有工作;它只是立即退出应用程序。有人能告诉我我错过了什么吗?

我在AndroidManifest.xml中定义了父活动:

...
    <activity
        android:name="net.example.myapp.MainActivity"
        android:label="@string/app_name" >
    </activity>

    <activity
        android:name="net.example.myapp.DetailActivity"
        android:parentActivityName="net.example.myapp.MainActivity"
        android:label="@string/app_name"
        android:icon="@drawable/ic_launcher" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="net.example.myapp.MainActivity" />
    </activity>
...

在我的孩子活动中:

import java.util.ArrayList;
import java.util.List;

import android.support.v4.app.NavUtils;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;

import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

...

@Override
protected void onCreate(Bundle savedInstanceState) {
    getActionBar().setDisplayHomeAsUpEnabled(true);

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_detail);
}

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

...

1 个答案:

答案 0 :(得分:0)

Providing Up Navigation training完成了实现向后兼容的Up功能所需的所有步骤。

由于Action Bar仅在API 11中添加(并且自那时以来已经多次更改,最近更改为API 21的Material Design),您可以使用AppCompat提供通过API兼容的一致Action Bar 7,为您提供与最新设备相同的Material Design Action Bar