csh_34 2013-01-18 05:50 采纳率: 0%
浏览 4603
已采纳

如何改变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 中显示内容 

如何实现这个功能呢?

  • 写回答

2条回答 默认 最新

  • Curie-87 2013-01-22 02:32
    关注

    在 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 radiobutton1,radiobutton2;
        String [] name_array,type_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.this,android.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();
                        }
                    }
                });
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程