如何根据用户偏好更改显示哪种布局?

时间:2013-05-07 07:06:48

标签: android android-layout

我有一个活动ColorChoiceActivity,它显示用户从中选择颜色首选项的无线电组。我希望能够根据选择了哪些按钮来更改PlayGameActivity中显示的xml布局。

目前,PlayGameActivity只显示默认布局:

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.battlefield_default);
}

到目前为止,我的ColorChoiceActivity有以下内容:

public class ColorChoiceActivity extends Activity {

private RadioGroup radioColorGroup;
private RadioButton radioColorButton;
private Button saveColorBtn;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.color_choice_screen);

    addListenerOnButton();
}

public void addListenerOnButton()
{
    radioColorGroup = (RadioGroup) findViewById(R.id.radioColor);
    saveColorBtn = (Button) findViewById(R.id.saveColorBtn);

    saveColorBtn.setOnClickListener(new OnClickListener() 
    {
        @Override
        public void onClick(View v){
            //get selected radio button from radioGroup
            int selectedId = radioColorGroup.getCheckedRadioButtonId();

            //find the radiobutton by returned id
            radioColorButton = (RadioButton) findViewById(selectedId);

            //change battlefield layout based on selected color
        }
    });
}


}

我不知道如何根据ColorChoice中选择的内容更改PlayGameActivity中显示的布局。目前我有几个单独的战场布局文件,但我不知道如何根据用户选择切换内容视图。有没有办法做到这一点,还是我以错误的方式解决问题?

2 个答案:

答案 0 :(得分:0)

在onClick()列表器中,只需记住选定的战场,然后使用

有条件地设置布局
setContentView("your selected layout")

在创建方法上。

答案 1 :(得分:0)

更好的选择是使用菜单而不是radiogroup

public boolean onOptionsItemSelected(MenuItem item){
    switch (item.getItemId()) {
            case R.id.color1:
            break;
            }
    }