在向上导航

时间:2015-04-22 11:57:34

标签: java android navigation-drawer

这似乎有效,但不确定我是否必须将其添加到每个Activity?

ActionBarActivity

以及使用<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.shmira.shmira.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=".Book" android:theme="@style/Theme.AppCompat" android:label="Shmira" > </activity>

扩展类

这是我在清单中所做的:

public class Book extends ActionBarActivity



 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.book);


        getSupportActionBar().setDisplayHomeAsUpEnabled(true); 



@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar actions click
        switch (item.getItemId()) {
            // lets user travel back to where they came from
            case android.R.id.home:
                finish();
                return true;

班级看起来像这样:

wlp-extended-8.5.5.5.jar

3 个答案:

答案 0 :(得分:1)

如果您正在使用支持列表,即ActionBarActivity,请在致电setContentView后添加以下行:

  getSupportActionBar().setDisplayHomeAsUpEnabled(true);

如果您没有使用支持列表Activity,那么只需将getSupportActionBar()更改为getActionBar() ..并且不要忘记将android:theme="@style/Theme.AppCompat"添加到{ {1}}

要返回AndroidManifest.xml而不是通过堆栈,请在MainActivity中将ActivityA定义为ActivityB的父级,如下所示:

AndroidManifest.xml

答案 1 :(得分:0)

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

在您的代码中,您使用getActionBar()而基类是ActionBarActivity。您应该使用上面的代码。

答案 2 :(得分:0)

尝试在AndroidManifest.xml中的AcivityTag中添加Activity的ParentActivity

 <activity
        android:name=".Book"
        android:label="@string/book"
        android:parentActivityName="ParentActivity">

尝试在oncreate中添加以下代码

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);