单击ActionBar后退导航按钮时,活动不会返回到上一个活动

时间:2016-11-16 05:54:15

标签: android android-actionbar android-actionbaractivity

我的活动正在扩展ActionBarActivity,我们在onCreate()中设置了一个后退导航按钮:

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

    if(getSupportActionBar()!=null)
    {
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }
}

对于背压,完成此活动是针对给定的重写方法,但它没有转移到以前的活动

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    switch (item.getItemId())
    {
        case R.id.home:
            finish();
            return true;
     }
     return super.onOptionsItemSelected(item);
}

6 个答案:

答案 0 :(得分:5)

你的身份错了。所以,请更改您的身份证明.R'id.home' to' android.R.id.home:'。

<Image BindingContext="{x:Reference MySlider}" x:Name ="MyImg" WidthRequest="{Binding Value}" HeightRequest="{Binding Value}" BackgroundColor="Red"></Image>

<Slider Grid.Row="1" x:Name="MySlider" Maximum="360"></Slider>

试试这个。

答案 1 :(得分:0)

请参阅以下代码

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

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


 }

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
 switch (item.getItemId()) {
 case android.R.id.home:

 // app icon in action bar clicked; goto parent activity.
 this.finish();
 return true;
 default:
 return super.onOptionsItemSelected(item);
 }

}

答案 2 :(得分:0)

你需要调用onBackPressed函数

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

答案 3 :(得分:0)

您需要覆盖onBackPressed方法来处理ActionBar上的后退按钮(主页按钮)。

@Override
public void onBackPressed() {
   super.onBackPressed();
   // your code here
   // finish();
}

答案 4 :(得分:0)

  

你必须在get之前设置工具栏。

 model.AfterAuditVoid();
 ad.WorkListVoid();

答案 5 :(得分:0)

要提供正确的导航,您必须:

在清单中定义父活动。

<activity
   android:name=".MainActivity"
   android:parentActivityName=".HomeActivity"
   ....>

  <meta-data
    android:name="android.support.PARENT_ACTIVITY"
    android:value=".HomeActivity" />
</activity>

在MainActivity中:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

MainActivity的xml中应该有一个工具栏。然后覆盖onOptionsItemSelected。

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
    case android.R.id.home:
         finish();
         return true;
 }
}

您应该考虑使用NavUtils.navigateUpFromSameTask(this)或其他类似的NavUtils类方法,而不是使用finish()。

使用像singleTop这样的launchModes来阻止重新加载父活动。

可以找到有关正确导航的更多信息here