我有一个活动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中显示的布局。目前我有几个单独的战场布局文件,但我不知道如何根据用户选择切换内容视图。有没有办法做到这一点,还是我以错误的方式解决问题?
答案 0 :(得分:0)
在onClick()列表器中,只需记住选定的战场,然后使用
有条件地设置布局setContentView("your selected layout")
在创建方法上。
答案 1 :(得分:0)
更好的选择是使用菜单而不是radiogroup
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()) {
case R.id.color1:
break;
}
}