我无法在任何地方找到答案(很可能我没有找到正确的答案)。在Android中,我试图在我的应用程序中根据选择的单选按钮从多个数组中创建一个微调器。如果选择了单选按钮1,我希望微调器使用数组1,如果选择了单选按钮2,我希望微调器使用数组2.这是我到目前为止所做的,但它不起作用。每当我点击我的应用程序中的选项卡时,我的应用程序强制关闭。
public class This_Activity extends Activity {
/** Called when the activity is first created. */
private RadioButton rb1;
private RadioButton rb2;
private RadioButton rb3;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_2_layout);
rb1=(RadioButton)findViewById(R.id.Radio1);
rb2=(RadioButton)findViewById(R.id.Radio2);
rb3=(RadioButton)findViewById(R.id.Radio3);}{
if(rb1.isChecked() == true){
Spinner spinner1 = (Spinner) findViewById(R.id.Spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.Array1, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(adapter);
}
if(rb2.isChecked() == true){
Spinner spinner2 = (Spinner) findViewById(R.id.Spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.Array2, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(adapter);
}
if(rb3.isChecked() == true){
Spinner spinner3 = (Spinner) findViewById(R.id.Spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.Array3, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner3.setAdapter(adapter);
}
}
}
答案 0 :(得分:0)
如果没有您看到的错误消息,很难诊断问题。你能编辑一下你的问题吗?
然而,我注意到的一件事是你在每种情况下都在创造不同的微调器。尝试使用
Spinner spinner = (Spinner) findViewById(R.id.Spinner);
ArrayAdapter<CharSequence> adapter = null;
在你的if语句之上。然后你的if语句的主体看起来像
adapter = ArrayAdapter.createFromResource(
this, R.array.Array1, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
你也可能希望将监听器连接到你的单选按钮,以便在用户点击它们时自动更改微调器,因为现在这只会在构造函数中发生。
rb1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// change your spinner adapter here
}
});
可能更容易将单选按钮放在RadioGroup中并将OnCheckChangedListener置于其上,因此您只需要一个侦听器来处理所有3个按钮。