3

我已试过在一个活动回来检测方法按:安卓向上按钮按在标题栏中没有得到检测

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); 
} 

UPDATE:

中,onKeyDown,和的onkeyup工作onBackPressed上在屏幕底部的“屏幕上的按钮”上按下后退按钮,这是: enter image description here

但不要工作当按下标题栏中的向上按钮,这是这样的: enter image description here

当按下标题栏中的向上按钮时,它们为什么不工作?

+0

尝试调试检查,如果他们被称为与否,或检查其他日志级别 – BNK

+0

尝试过其他的日志级别,不工作 – user5155835

回答

2

也许这? 它使得ActionBar后退按钮像后退按钮一样工作。

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
      if (item.getItemId() == android.R.id.home) { 
        onBackPressed(); 
        return true; 
      } 
      return super.onOptionsItemSelected(item); 
    } 
0

这是代码在你的主要活动

@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(); 

     } 

    } 
+0

那么什么变化,应该怎么办? – user5155835

+0

删除返回超级不工作要么 – user5155835

+0

你不必删除super.onKeyDown(keyCode,event); –