操作栏的显示后退按钮不会在Android中返回

Wai*_*ein 6 android android-actionbar

我正在开发一款Android应用.我正在使用ActionBar和AppCompactActivity.在我的应用程序中,我将按钮添加到操作栏.但是当我点击它时,它不会回到之前的活动.例如,我从活动1开始活动2.活动2包含带后退按钮的操作栏.但是当我点击活动2的操作栏后退按钮时,它不会返回到活动1.

这就是我为活动2设置操作栏的方法:

public class EditProfileActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.edit_profile);
        Toolbar toolbar = (Toolbar)findViewById(R.id.profile_action_toolbar);
        setSupportActionBar(toolbar);
        setTitle("Edit Profile");
        ActionBar actionBar= getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是我从活动1开始活动2的方式:

Intent i = new Intent(MainActivity.this,SecondActivity.class);
                    startActivity(i);
Run Code Online (Sandbox Code Playgroud)

单击此按钮时不会返回

在此输入图像描述

为什么不回去?

Rav*_*eja 39

将以下内容添加到您的活动中.您必须处理后退按钮的单击事件.

@Override
 public boolean onOptionsItemSelected(MenuItem item) {
      switch (item.getItemId()){
         case android.R.id.home:
              onBackPressed();
              return true;
       }
   return super.onOptionsItemSelected(item);
 }
Run Code Online (Sandbox Code Playgroud)


Dmi*_*fti 8

这里有2个选项:

a)在AndroidManifest.xml中parentActivityName为您的SecondActivity标签提供如下:

 <activity
    ...
    android:name=".SecondActivity"
    android:parentActivityName=".MainActivity" >
Run Code Online (Sandbox Code Playgroud)

B)覆盖onOptionsItemSelectedSecondActivity这样的:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    // Respond to the action bar's Up/Home button
    case android.R.id.home:
        onBackPressed();
        return true;
    }
    return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)

我建议您阅读本指南以获取更多信息.