android - 向上按钮 - getSupportActionBar().setDisplayShowHomeEnabled(true) - 关闭应用

标签 android android-activity android-actionbar android-actionbaractivity

我已经尝试为我的应用制作一个“返回”按钮,或者谷歌称之为低级 Activity 的向上按钮。

我正确地写下了一切: 在我的 XML 中,我放置了元数据和父 Activity (来自 Google 的示例,我在我的文件中修改了我的应用程序的文本)

android:parentActivityName="com.example.myfirstapp.MainActivity" >
        <!-- Parent activity meta-data to support 4.0 and lower -->
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.myfirstapp.MainActivity" />

在我的课上我放了下一行:

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

但是当我点击这个向上按钮时,应用程序关闭,然后再次从主屏幕打开。

我希望它在不关闭(完成)应用程序的情况下返回主屏幕。

你能帮帮我吗?谢谢。

最佳答案

嗯,根据this guide ,

When running on Android 4.1 (API level 16) or higher, or when using ActionBarActivity from the Support Library, performing Up navigation simply requires that you declare the parent activity in the manifest file and enable the Up button for the action bar.

因此,我有两个 Activity:FirstActivity 是我的启动器和父级 Activity,SecondActivity 是我的子级 Activity

我的 FirstActivity 代码:

public class FirstActivity extends ActionBarActivity {

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

    Button secondButton = (Button) findViewById(R.id.secondButton);

    secondButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            startActivity(new Intent(FirstActivity.this, SecondActivity.class));

        }
    });

}

}

我的 SecondActivity 代码:

public class SecondActivity extends ActionBarActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_place_activity);

    //enable the ActionBar behaviour
    ActionBar actionBar = getSupportActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);
    }
}

我的 Manifest.xml 文件:

<?xml version="1.0" encoding="utf-8"?>

<uses-sdk
    android:minSdkVersion="16"
    android:targetSdkVersion="20" />

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.testes.activity.FirstActivity"
        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="com.testes.activity.SecondActivity"
        android:parentActivityName="com.testes.activity.FirstActivity" >
    </activity>
</application>

</manifest>

这就是我需要让它按照您的方式工作的全部内容。我启动我的 FirstActivity,单击我的 Button 转到 SecondActivity,单击 ActionBar 主页按钮,它返回到 FirstActivity

关于android - 向上按钮 - getSupportActionBar().setDisplayShowHomeEnabled(true) - 关闭应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24520911/

相关文章:

java - 操作栏中的菜单不会在下一个 Activity 中显示

android - TabListener、ActionBarSherlock Fragment 和 ListFragment、PageAdapter 的混合?一团糟

android - 在溢出按钮上锚定弹出菜单

Android:如何在扩展Activity的类中使用onDraw方法?

java - 观察者 update() 导致 NullPointerException

android - 如何从子 Activity 完成父 Activity

android - 是否可以使用delphi读取android上其他应用程序的通知?

android - Xamarin 表单 : How to change text color of selected tab using TabbedPageRenderer

android - 我最近更新了我的android studio,在创建新项目时出现了2个错误

java - 关于在 Android 中扩展记事本教程的一个非常开放的、n00b 式的问题