Android重写onBackPressed()
是否有可能重写onBackPressed()只有一个活动?
在后退button上单击我想调用特定活动的对话框,但是在所有其他活动中,我希望它能像以前一样工作(转到以前的活动)。 。 。
谢谢你提前给我们
EDITED
谢谢大家对你的支持者,我已经拥有了像你告诉我的一切,但我的问题是,当我点击另一个Activity的button时,我正要去上一个Activity(我已经返回buttonOverriden的那个)认为这是行不通的,我认为这是覆盖onBackPressed()在整个应用程序,现在我明白了:D
是。 只能在一个Activity
中用它覆盖它
@Override public void onBackPressed() { // code here to show dialog super.onBackPressed(); // optional depending on your needs }
不要把这个代码放在任何其他Activity
根据onBackPressed()
的示例重写onBackPressed()
方法,并移除对super.onBackPressed();
的调用super.onBackPressed();
如果您不希望执行默认操作(完成当前活动)。
你可以直接调用onBackPressed(),如果你想在后面的button之后显示一些活动,
Intent intent = new Intent(ResetPinActivity.this, MenuActivity.class); startActivity(intent); finish();
为我工作。
只需在要显示对话框的活动中调用onBackPressed()
方法,并在其中显示对话框。
最好和最通用的方式来控制音乐是创build一个母亲活动,其中你重写startActivity(Intent intent)
– 在其中你把shouldPlay=true
,并onBackPressed()
– 在其中你把shouldPlay = true
。 onStop
– 在它你把条件mediaPlayer.stop与shouldPlay作为条件
那么,只要将母亲的活动延伸到其他所有的活动中,就不需要复制代码。
起初你必须考虑到,如果你的活动,我叫A扩展了另一个活动(B),并在两个
他们你想使用onbackpressed函数,那么你在B中的每个代码也运行在A中。 所以如果你想分开这些你应该分开它们。 这意味着A不应该延长B,那么你可以分别对他们进行反击。
尝试这个工作
@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(); }