如何使图标与Android中的物理后退按钮相同?

wil*_*eng 5 android back

我有MainActivitySecondActivity.

AndroidManifest.xml中

<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=".SecondActivity"
    android:label="@string/title_activity_second_activitity"
    android:parentActivityName=".MainActivity" >
</activity>
Run Code Online (Sandbox Code Playgroud)

当我点击后面的图标时SecondActivity,它更有可能MainActivity被推上SecondActivity.相反,物理后退按钮将SecondActivity弹出并返回MainActivity.

如何使后退箭头图标的行为与物理后退按钮相同?

Car*_*s J 11

根据谷歌的指导原则,物理后退按钮和图标后退按钮不应该以相同的方式工作.但是如果你想改变它的行为,你需要通过执行下一步来覆盖它的功能:

在您的SecondActivity覆盖上 onOptionsItemSelected

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == android.R.id.home) {
        onBackPressed();    //Call the back button's method
        return true;
    }

    return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)

此外,您需要android:parentActivityName=".MainActivity"从清单中删除,但要避免删除后退图标,您需要将其设置为启用:

@Override
public boolean onCreate(Bundle savedInstanceState) {

    ...

    ActionBar actionBar = getActionBar();  //Make sure you are extending ActionBarActivity
    actionBar.setDisplayHomeAsUpEnabled(true);
    actionBar.setHomeButtonEnabled(true);

    //It's also possible to use getSupportActionBar()
}
Run Code Online (Sandbox Code Playgroud)


小智 6

卡洛斯的回答有效。还有另一种我认为更直接的方法:只需将点击侦听器直接添加到后退图标即可。

toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
        finish();
        }
    });
Run Code Online (Sandbox Code Playgroud)