android 未检测到标题栏中的向上按钮按下
android Up button press in title bar not getting detected
我尝试了以下方法来检测 activity 中的后压:
private static final String TAG = "PRESSED";
@Override
public void onBackPressed() {
Log.i(TAG,"BACK");
super.onBackPressed();
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Log.i(TAG, "Back pressed");
}
return super.onKeyUp(keyCode, event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Log.i(TAG, "Back pressed 1");
}
return super.onKeyDown(keyCode, event);
}
更新:
onKeyDown、onKeyUp 和 onBackPressed 在按下屏幕底部 "On screen buttons" 上的后退按钮时工作,这是这样的:
但是在标题栏中按下向上按钮时不工作,这是这样的:
为什么在按下标题栏中的向上按钮时它们不起作用?
这是您的主代码 activity
@Override
public boolean onNavigateUp() {
// TODO Auto-generated method stub
getFragmentManager().popBackStack();
return true;
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
// for closing activity
boolean canback = getFragmentManager().getBackStackEntryCount()==1;
if (canback) {
finish();
}
else {
super.onBackPressed();
}
}
也许是这个?
它使 ActionBar 后退按钮像后退按钮一样工作。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
我尝试了以下方法来检测 activity 中的后压:
private static final String TAG = "PRESSED";
@Override
public void onBackPressed() {
Log.i(TAG,"BACK");
super.onBackPressed();
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Log.i(TAG, "Back pressed");
}
return super.onKeyUp(keyCode, event);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Log.i(TAG, "Back pressed 1");
}
return super.onKeyDown(keyCode, event);
}
更新:
onKeyDown、onKeyUp 和 onBackPressed 在按下屏幕底部 "On screen buttons" 上的后退按钮时工作,这是这样的:
但是在标题栏中按下向上按钮时不工作,这是这样的:
为什么在按下标题栏中的向上按钮时它们不起作用?
这是您的主代码 activity
@Override
public boolean onNavigateUp() {
// TODO Auto-generated method stub
getFragmentManager().popBackStack();
return true;
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
// for closing activity
boolean canback = getFragmentManager().getBackStackEntryCount()==1;
if (canback) {
finish();
}
else {
super.onBackPressed();
}
}
也许是这个? 它使 ActionBar 后退按钮像后退按钮一样工作。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}