2011-12-19 89 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