是否有可能重寫onBackPressed()只有一個活動?Android覆蓋onBackPressed()
關於返回按鈕單擊我想調用特定活動的對話框,但在所有其他活動中,我希望它能像以前一樣工作(轉到以前的活動)。 。 。
謝謝您提前給您的服務員。
EDITED
謝謝大家對你的anwsers,我已經一切都像你告訴我,但我的問題是,當我點擊後退按鈕上的其他活動,我要我的以前的活動(我認爲這是行不通的,我認爲這是重寫onBackPressed()在整個應用程序中,現在我明白了:D
是否有可能重寫onBackPressed()只有一個活動?Android覆蓋onBackPressed()
關於返回按鈕單擊我想調用特定活動的對話框,但在所有其他活動中,我希望它能像以前一樣工作(轉到以前的活動)。 。 。
謝謝您提前給您的服務員。
EDITED
謝謝大家對你的anwsers,我已經一切都像你告訴我,但我的問題是,當我點擊後退按鈕上的其他活動,我要我的以前的活動(我認爲這是行不通的,我認爲這是重寫onBackPressed()在整個應用程序中,現在我明白了:D
是的。只有
@Override
public void onBackPressed()
{
// code here to show dialog
super.onBackPressed(); // optional depending on your needs
}
覆蓋它在一個Activity
不要把這個代碼在任何其他Activity
上面的代碼如何在分段中工作?這是任何解決方案 –
你好我有一個相同的問題我的活動2正在進行的活動1,但我不想去活動1,如果我點擊活動2我的應用程序應退出。我怎樣才能做到這一點 ? –
@Tabishkhan在開始活動2的意圖後,在活動1上調用'finish()'。然後,活動2將是堆棧中唯一的一個 – codeMagic
只需在您的活動中調用onBackPressed()
方法想要顯示對話框並在其中顯示對話框。
覆蓋的onBackPressed()
方法按照由codeMagic的例子,如果你不刪除調用super.onBackPressed();
想要執行默認操作(完成當前活動)。控制音樂
+1,用於解釋super.onBackPressed – erdomester
最好的和最通用的方法是建立在你重寫startActivity(Intent intent)
母親活動 - 在它你把shouldPlay=true
, 和onBackPressed()
- 在它你把shouldPlay = true
。 onStop
- 在其中,您將條件mediaPlayer.stop與shouldPlay作爲條件
然後,只需將母活動擴展到所有其他活動,並且不需要重複代碼。
您可能只需要調用onBackPressed(),如果你想要一些活動,以後退按鈕後,顯示你有提到
Intent intent = new Intent(ResetPinActivity.this, MenuActivity.class);
startActivity(intent);
finish();
爲我工作。
首先,你必須考慮,如果你的活動我把它叫做一個擴展另一個活動(B),並在兩者的
要使用onbackpressed功能他們,那麼你每次在B的代碼在A上運行了。所以如果你想分開這些,你應該分開它們。這意味着A不應該延長B,那麼你可以分別爲他們每個人進行onbackpressed。
試一試它的工作
@Override
public void onBackPressed(){
super.onBackPressed();
Intent i=new Intent(Intent.ACTION_MAIN);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
finish();
}
只需使用下面的代碼初始化場
private int count = 0;
@Override
public void onBackPressed() {
count++;
if (count >=1) {
/* If count is greater than 1 ,you can either move to the next
activity or just quit. */
Intent intent = new Intent(ResetActivity.this, LoginActivity.class);
startActivity(intent);
finish();
overridePendingTransition
(R.anim.push_left_in, R.anim.push_left_out);
/* Quitting */
finishAffinity();
} else {
Toast.makeText(this, "Press back again to Leave!", Toast.LENGTH_SHORT).show();
// resetting the counter in 2s
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
count = 0;
}
}, 2000);
}
super.onBackPressed();
}
[參考這裏(HTTP://計算器。com/a/3142471/2345913) – CRUSADER
刷新此頁面以將「查看」計數提高到50,000 – suku