我之前曾问过这个,但是我太笼统了。
我有一个带有两个单选按钮和只有两个数组的活动:String[] tickets;
有3个项目,String[] subscriptions;
有5个项目。顺便说一句,单选按钮在radioGroup内部。
第一个radioButton用于String[] tickets;
,第二个radioButton用于String[] subscriptions;
[当我检查第一个radioButton时,我希望由String[] tickets
中的项目填充微调器,而当我检查第二个radioButton时,我想由String[] subscriptions;
中的项目填充微调器。
但是你怎么做到的?我尝试使用一个空的临时数组,并将其用作微调框的数组源。然后,我将这些数组之一放入空数组中。但这没有用。
编辑:
MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
String[] tickets = {"Ticket #1", "Ticket #2", "Ticket #3"};
String[] subscriptions = {"Sub #1", "Sub #2", "Sub #3", "Sub #4", "Sub #5"};
String[] tempArray;
Spinner spinner1;
RadioGroup radioGroup;
RadioButton radioButtonOption;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_third);
radioGroup = (RadioGroup)findViewById(R.id.radioGroup);
int selectedRadioButton = radioGroup.getCheckedRadioButtonId();
radioButtonOption = (RadioButton)findViewById(selectedRadioButton);
spinner1 = (Spinner)findViewById(R.id.spinner1);
radioButtonOption.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (radioButtonOption.getText().equals("Journeys/Tickets")) {
tempArray = tickets;
} else if (radioButtonOption.getText().equals("Subscription")) {
tempArray = subscriptions;
}
}
});
spinner1.setOnItemSelectedListener(this);
ArrayAdapter a1 = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, tempArray);
a1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(a1);
spinner1.setOnItemSelectedListener(this);
我之前曾问过这个,但是我太笼统了。我有一个带有两个单选按钮和两个数组的活动:String []票证;有3个项目和String []订阅;有5个项目。由...
尝试此
您可以在radioGroup上调用OnCheckChangeListener,然后相应地设置微调适配器。参见示例: