问题描述
- 如何改变spinner中的数组源
- 在程序中有一个 spinner5 ,我在 values folder 中创建了两个字符串数组 name_array 和 type_array 。还有两个 radio buttons: radiobtn1 和 radiobtn2 。
我想实现的是当每个单选按钮被选中时改变 spinner5 的内容。if (radiobtn1 被选中)then spinner5 从 name_array 中显示内容 else If (radiobtn2 被选中)then spinner5 从 type_array 中显示内容
如何实现这个功能呢?
解决方案
在 xml中写入下面的代码
<RadioGroup android:layout_toRightOf=""@+id/txtpref"" android:layout_marginLeft=""10sp"" android:orientation=""horizontal"" android:layout_width=""wrap_content"" android:layout_height=""wrap_content""> <RadioButton android:textColor=""#000000"" android:text=""Male"" android:layout_width=""wrap_content"" android:layout_height=""wrap_content"" android:id=""@+id/radiobutton1""/> <RadioButton android:textColor=""#000000"" android:text=""Female"" android:layout_width=""wrap_content"" android:layout_height=""wrap_content"" android:id=""@+id/radiobutton2""/> </RadioGroup> In Your Java file RadioButton radiobutton1radiobutton2; String [] name_arraytype_array; String [] temparray; temparray = (name_array or type_array) // use any which you want disaplay first and use temparray to pass your adapter ArrayAdapter arrayAdapter =new ArrayAdapter<String>(Activity_Name.thisandroid.R.layout.simple_spinner_item temparray);arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_it??em); radiobutton1 = (RadioButton) findViewById(R.id.radiobutton1); radiobutton2 = (RadioButton) findViewById(R.id.radiobutton2); radiobutton1.setOnCheckedChangeListener(new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView boolean isChecked) { // TODO Auto-generated method stub if (isChecked) { // you want spinner5 to display contents from name_array. temparray = name_array; your_adapter.notifyDataSetChanged(); } } }); radiobutton2.setOnCheckedChangeListener(new OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView boolean isChecked) { // TODO Auto-generated method stub if (isChecked) { // you want spinner5 to display contents from type_array. temparray = type_array; your_adapter.notifyDataSetChanged(); } } });
解决方案二:
设置两个adapter,根据radio的不同选择设置不同的adapter.
时间: 2024-10-27 12:42:56