后退按钮转到 Android 中的另一个 Activity 而不是父级 Activity

Back Button to go another Activity not parent Activity in Android

我用这段代码创建了一个后退按钮

    getActionBar().setHomeButtonEnabled(true);
    getActionBar().setDisplayHomeAsUpEnabled(true);

以便用户回到父级 Activity。 但现在我希望用户返回到另一个 Activity(而不是父 activity)。我该怎么做?

您必须从 activity:

中覆盖 onBackPressed()
@Override
public void onBackPressed()
{
    super.onBackPressed(); 
    startActivity(new Intent(ThisActivity.this, NextActivity.class));
    finish();

}

Note : In this code ThisActivity is your current Activity and NextActivity is which you open Activity on Back Button Click.

处理操作栏主页按钮按下事件并执行您的逻辑

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
                switch (item.getItemId()) {
                case android.R.id.home:
                      // Your desired class
                       startActivity(new Intent(ThisActivity.this, NextActivity.class)); 
                    break;
                }
                return true;
        }

试试这个方法,

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_file, menu);
    return true;
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {

        case android.R.id.home:

                Intent about = new Intent(MainActivity.this,Target.class);;
                startActivity(about);
                finish();

            return true;

        default:
            return super.onOptionsItemSelected(item);
    }

}

here android.R.id.home refer to your Back icon which is in ActionBar

将此添加到清单中,为您的 activity 名称修改它

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

然后您应该在 Child 或第二个 Activity 中添加如下代码,无需像下面

那样仅传递 finish() 当前 activity 意图
@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {

            case android.R.id.home:

                    Intent intent = new     Intent(SecondActivity.this,ParentActivity.class);
                    startActivity(about);
                    finish();
                return true;

            default:
                return super.onOptionsItemSelected(item);
        }