0

我有一个活动 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 中显示的布局。目前我有几个单独的战场布局文件,但我不知道如何根据用户选择将内容视图切换到它们。有没有办法做到这一点,还是我以错误的方式解决问题?

4

2 回答 2

0

在 onClick() 监听器中,只需记住选择的战场,然后使用有条件地设置布局

setContentView("your selected layout")

在创建方法中。

于 2013-05-07T10:44:18.413 回答
0

更好的选择是使用菜单而不是无线电组

public boolean onOptionsItemSelected(MenuItem item){
    switch (item.getItemId()) {
            case R.id.color1:
            break;
            }
    }
于 2013-05-08T00:08:35.347 回答