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