2011-12-19 87 views
1

我在應用中的內容視圖中添加了重疊視圖。向後退按鈕添加操作

我想添加一個動作到後退按鈕來刪除這個疊加視圖,然後有默認的後退按鈕功能。

什麼是最好的方式去做這件事?

謝謝。

回答

4

我對此方案的解決方案是爲用戶在應用程序中的位置作出全局指示。

例如,考慮這個(直接從我目前的項目):

//... 
private boolean mInSettingsMode; 
//... 

// The button's onclick method. 
public void onSettingsButtonClick(View v) { 
    mInSettingsMode = true; 
    // Initialize view stuff. 
} 

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     if (mInSettingsMode) { 
      mInSettingsMode = false; 
      resetToNormalView(); 
      return true; 
     } else { 
      return super.onKeyDown(keyCode, event); 
     } 
    }  
    return super.onKeyDown(keyCode, event); 
} 
+0

很酷的謝謝,我已經這樣做了。 :)雖然我已經重寫了方法:'if(keyCode == KeyEvent.KEYCODE_BACK && mInSettingsMode){'所以我只有一個'return super.onKeyDown(keyCode,event);'語句。謝謝你的提示。 – 2011-12-19 15:43:59

2

你應該實現onKeyDown()方法並檢查keyCode是否回來。如果是的話,你可以做任何你想做的事情。

希望這會有所幫助!

+0

的onkeydown ...是一個活動的方法? – 2011-12-19 15:38:26

+0

Yeap它是一個活動的方法,你應該重寫 – 2011-12-19 15:45:33

1

您應該重寫onBackPressed()

@Override 
public void onBackPressed() 
{ 
    // Add your code here 

    // Then call the parent constructor to have the default button functionality 
    super.onBackPressed(); 
} 
+0

這只是Android 2.0及以上版本不幸的。雖然我猜測隨着Android 4.0的到來,它可能最好停止支持1.6。 – 2011-12-19 15:44:39

+0

我同意,Android 1.6現在只佔1.3%的市場份額(http://developer.android.com/resources/dashboard/platform-versions.html),並且試圖支持它通常是一個巨大的浪費時間。 – Dalmas 2011-12-19 15:51:03