您可以存储一个布尔值跟踪布局的状态(无论是RelativeLayout的5个按钮,或查看选择状态与4个按钮)。通过这种方式,当您加载活动时,您可以首先检查此标志以确定要加载的布局。您也可以使用首选项,以便您不需要初始化此标志变量,而是可以使用默认值。
public class MyActivity extends Activity {
public static final String PREFS_NAME = "MyPrefsFile";
public enum ViewState {
NO_CLICK, VIEW_A, VIEW_B, ...
};
@Override
protected void onCreate(Bundle state){
super.onCreate(state);
. . .
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
int currentView = settings.getInt("viewClicked", NO_CLICK);
switch(currentView)
{
case VIEW_A: // Load the view if button A was clicked
loadViewA();
break;
case VIEW_B: // Load the view if button B was clicked
loadViewB();
break;
...
case NO_CLICK: // Load the RelativeLayout with 5 Buttons
default:
loadDefaultView();
break;
}
}
而在你的OnClickListener的按钮A:
public void onClick(View v) {
...
// Get the settings
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("viewClicked", VIEW_A);
// Commit the edits!
editor.commit();
// Load the view
loadViewA();
}
为其他按钮的其他的onClick()方法也同样可以实现。
编辑:更新使用一个整数,而不是一个布尔