我在我的应用中制作了一个操作栏后退按钮: Settings.java:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
和 的AndroidManifest.xml:
<activity android:name=".Settings">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="at.mrminemeet.reviewcheck.MainActivity" />
</activity>
但是我经历过,软件密钥调用了“onPause”,但操作栏不会这样做。
我查了一些其他帖子,所以告诉我试试
@Override
public void onBackPressed(){
// stuff
super.onBackPressed();
}
但它没有做任何事情。它完全忽略了我添加了代码。
我做错了吗?
答案 0 :(得分:0)
您需要覆盖onOptionsItemSelected()
并使用ID android.R.id.home
覆盖向上按钮操作。我要做的是在按下主页按钮时调用onBackPressed()
功能。示例代码将如下所示
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
getActivity().onBackPressed()
return true;
}
return super.onOptionsItemSelected(item);
}
有关详细信息,请参阅Android documentation on providing up Navigation
请注意,以下答案是在编辑原始问题之前编写的。我将它留在这里并回答了上述问题。
原始答案:
如果你是专门谈论
@Override
public void onBackPressed(){
super.onBackPressed();
// stuff
}
然后问题在于您在代码之前调用super.onBackPressed()
。此调用将返回上一个活动或退出应用程序,具体取决于调用它的活动。而是将其更改为 -
@覆盖
public void onBackPressed(){
//your code to do stuff here
super.onBackPressed();
}
它将首先执行您的代码,然后返回。