2016-12-29 77 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。

相關問題