2012-04-03 17 views
0

私はこの質問を以前に試みましたが、正しく説明しなかったので、もう一度試してみます。私はスピナー(spinner5)を持って、私は値のフォルダの中にある2つの文字列配列(name_arrayとtype_array)を作成しました。スピナーのアレイソースを変更するにはどうすればいいですか?

また、2つのラジオボタン(radiobtn1とradiobtn2)があります。私は基本的に、各ラジオボタンが選択されたときにspinner5のソースを変更したいと思います。

if (radiobtn1 is selected) 
then 
    I want spinner5 to display contents from name_array. 

else If (radiobtn2 is selected) 
then 
    I want spinner5 to display contents from the type_array. 

誰かが助けることができると思います。おかげ

答えて

4
Write below code in 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(); 
        } 
       } 
      }); 


    Thanks 
+0

アダプターを作成し、その内容をtemparrayに設定しますか? – Matt9Atkins

+0

と私はスピナーアダプタを1回だけ設定しますか? – Matt9Atkins

+0

私はarrayAdapterでこれを使うことはできませんが、arrayAdapterのコードを私に渡すことはできますか?ありがとう – Matt9Atkins

1


そのシンプルな男は... onCheckedChangedリスナーでアダプタの値を変更してnotifyDataSourceChangeを呼び出します。

もし明確でない場合は、google for - spinnerの値を動的に変更する方法もあります。その後、

<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; 
ArrayAdapter<String> ArrayAdapter; 

RadioGroup radioGroup=(RadioGroup)findViewById(R.id.RadioGroup); 
if(R.id.radioButton1==group.getCheckedRadioButtonId()){ 
    ArrayAdapter=new ArrayAdapter<String>(getCurrentContext(), android.R.layout.simple_spinner_item, name_array); 
    NameSpinner.setAdapter(ArrayAdapter); 
    ArrayAdapter.notifyDataSetChanged() 
}else{ 
    ArrayAdapter=new ArrayAdapter<String>(getCurrentContext(), android.R.layout.simple_spinner_item, name_array); 
    NameSpinner.setAdapter(ArrayAdapter); 
    ArrayAdapter.notifyDataSetChanged() 
    } 
+0

よう

何か私はこの方法getCurrentContextは()であるというエラーを取得しますundefined – Matt9Atkins

+0

これを** this **に変更します。 –

+0

それはちょうど今私のアプリをクラッシュする – Matt9Atkins

0

代わりにXMLでそれを設定する設定ArrayAdapter ...アダプタを更新し続ける。.. this

+0

まだ私の質問にそれをどのように適用するか分からない。 – Matt9Atkins

関連する問題