2016-12-29 74 views
-1

我使用下面的代码为我的ActionBarButton,它可以回到以前的Activity并且还显示Toast如何在按下模拟器中的后退按钮时调用方法

case android.R.id.home: 
Toast.makeText(getApplication(),"A",Toast.LENGTH_SHORT).show(); 
onBackPressed(); 
return true; 

如果我按回我的模拟器中,没有Toast显示。所以,我决定加入这个

public void onBackPressed() 
    { 
     Toast.makeText(getApplication(),"A",Toast.LENGTH_SHORT).show(); 
     return; 
    } 

后加入这个,当我按在模拟器中后退按钮,它显示Toast但不能回到以前Activity。我点击ActionBarButton,发生同样的事情。

回答

2

尝试运行超级方法:

public void onBackPressed() 
    { 
     super.onBackPressed(); 
     Toast.makeText(getApplication(),"A",Toast.LENGTH_SHORT).show(); 
    } 

它将调用正常背压,并显示Toast

0

,如果他们想退出,然后调用super.onBackPressed我会实现一个对话框,要求用户()如果他们做到了。

@Override 
public void onBackPressed() { 
    new AlertDialog.Builder(this) 
     .setTitle("Really Exit?") 
     .setMessage("Are you sure you want to exit?") 
     .setNegativeButton(android.R.string.no, null) 
     .setPositiveButton(android.R.string.yes, new OnClickListener() { 

      public void onClick(DialogInterface arg0, int arg1) { 
       WelcomeActivity.super.onBackPressed(); 
      } 
     }).create().show(); 
} 

在上例中,您需要用您的活动名称替换WelcomeActivity。

1

你必须重写onBackPressed()方法,然后把你的吐司有

@Override 
public void onBackPressed() 
{ 
    super.onBackPressed(); 
    Toast.makeText(getApplication(),"A",Toast.LENGTH_SHORT).show();  
} 
0

中删除此代码

case android.R.id.home: 
    Toast.makeText(getApplication(),"A",Toast.LENGTH_SHORT).show(); 
    onBackPressed(); 
    return true; 

,只是使用此重写方法

@Override 
public void onBackPressed() 
{ 
    super.onBackPressed() 
    Toast.makeText(getApplication(),"A",Toast.LENGTH_SHORT).show(); 
} 

当您按下返回按钮时,它会由android自己调用。 你不需要称它为yourslef。

相关问题