スピナーを使用してスピナー固有のアイテムを削除したい場合は、両方のスピナーがstring-array string.xmlからデータを取得します。他のスピナーここ別のスピナーを使用してスピナーからアイテムを削除する方法
答えて
はあなたスピナーを更新するためのコードです:
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) {
}
});
私も他の助けを借りてスピナーにデータを追加したいスピナーのように私は1つのスピナーのweight2よりもarray2を選択すると、kg、グラム、カラットを追加し、スピンナーでテンプレートを選んだ場合data2 arraList add celcius、farenheight –
私はあなたが与えたコードでこれを行うことができます。ちょうどクリックしたアイテムの位置を取得し、ifステートメントを作成します。たとえば、position = 1の場合、新しいリストをアダプターに設定して、notifySetDataChangedを使用してアダプターに通知します。 –
はい、私はそれを行いました。複数のアダプターを作成し、それらをif文でasign –
が同じ配列からデータを取得し、両方のスピナーはありますか? –
また、ダイナミックスピナーが必要な場合は、リソースを編集できないため、アクティビティに直接配列を作成する必要があります。 –
はい両方のスピナーが同じ配列からデータを取得しています –