2016-04-23 12 views
0

スピナーを使用してスピナー固有のアイテムを削除したい場合は、両方のスピナーがstring-array string.xmlからデータを取得します。他のスピナーここ別のスピナーを使用してスピナーからアイテムを削除する方法

+0

が同じ配列からデータを取得し、両方のスピナーはありますか? –

+0

また、ダイナミックスピナーが必要な場合は、リソースを編集できないため、アクティビティに直接配列を作成する必要があります。 –

+0

はい両方のスピナーが同じ配列からデータを取得しています –

答えて

0

はあなたスピナーを更新するためのコードです:

List<String> data = new ArrayList<>(); 
List<String> data2 = new ArrayList<>(); 
//populate you lists in onCreate 

String tempRemovedItem ; 


Spinner spinner1 = (Spinner)findViewById(R.id.spinner1); 
Spinner spinner2 = (Spinner)findViewById(R.id.spinner2); 

ArrayAdapter<String> adapter1 = new ArrayAdapter<>(this, 
      android.R.layout.simple_dropdown_item_1line, data); 
ArrayAdapter<String> adapter2 = new ArrayAdapter<>(this, 
      android.R.layout.simple_dropdown_item_1line, data2); 

spinner1.setAdapter(adapter1); 
spinner2.setAdapter(adapter2); 

spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 

      //when item is selected remove it from data2 and update the adapter of the second spinner 

      data2.remove(spinner1.getSelectedItem().toString()); 

      if(tempRemovedItem != null){ 
       data2.add(tempRemovedItem); 
      } 

      tempRemovedItem = spinner1.getSelectedItem().toString(); 
      adapter2.notifyDataSetChanged(); 


     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 

     } 
    }); 
+0

私も他の助けを借りてスピナーにデータを追加したいスピナーのように私は1つのスピナーのweight2よりもarray2を選択すると、kg、グラム、カラットを追加し、スピンナーでテンプレートを選んだ場合data2 arraList add celcius、farenheight –

+0

私はあなたが与えたコードでこれを行うことができます。ちょうどクリックしたアイテムの位置を取得し、ifステートメントを作成します。たとえば、position = 1の場合、新しいリストをアダプターに設定して、notifySetDataChangedを使用してアダプターに通知します。 –

+0

はい、私はそれを行いました。複数のアダプターを作成し、それらをif文でasign –