Задача такая: сформировать значения в выпадающих списках в зависимости от того, что вы выберите из списка с родительскими элементами.
Например, список1 содержит значения Audi & Skoda.
Например, список2 содержит значения Audi A1, Audi A2, Skoda Octavia, Skoda Rapid.
Приступим:
Сформируем список1, используя отдельный класс:
public class StringWithTag {
public String string;
public Object tag;
public StringWithTag(String stringPart, Object tagPart) {
string = stringPart;
tag = tagPart;
}
@Override
public String toString() {
return string; }}
сделаем коллекцию:
List<StringWithTag> myList = new ArrayList<StringWithTag>();
myList.add(new StringWithTag("Audi","1"));
myList.add(new StringWithTag("Skoda","2"));
Создадим спинер:
final ArrayAdapter adapter1 = new ArrayAdapter<StringWithTag>(SettingsActivity.this,R.layout.simple_spinner_item1, myList);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner_set1.setAdapter(adapter3);
Создаем слушатель для списка1:
spinner_set1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (spinner_set1.getItemAtPosition(position).toString().equals(spinner_set1.getItemAtPosition(position).toString())) {
// у меня происходит наполнение временного списка из списка2(lowList)
tempList.clear();
for (int i=0;i<lowList.size();i++){
if (lowList.get(i).BlockID.equals(String.valueOf(topList.get(position).ID))){
tempList.add(new StringWithTag(lowList.get(i).ID,lowList.get(i).BlockID, (Object) lowList.get(i).tag));
}
}
ArrayAdapter adapter2 = new ArrayAdapter<StringWithTag>(SettingsActivity.this,R.layout.simple_spinner_item1, tempList);
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner_set2.setAdapter(adapter2);
//установка реагирования на выборку значений из списка2
spinner_set2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String strModel = spinner_set2.getItemAtPosition(position).toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}}
Успехов!
Например, список1 содержит значения Audi & Skoda.
Например, список2 содержит значения Audi A1, Audi A2, Skoda Octavia, Skoda Rapid.
Приступим:
Сформируем список1, используя отдельный класс:
public class StringWithTag {
public String string;
public Object tag;
public StringWithTag(String stringPart, Object tagPart) {
string = stringPart;
tag = tagPart;
}
@Override
public String toString() {
return string; }}
сделаем коллекцию:
List<StringWithTag> myList = new ArrayList<StringWithTag>();
myList.add(new StringWithTag("Audi","1"));
myList.add(new StringWithTag("Skoda","2"));
Создадим спинер:
final ArrayAdapter adapter1 = new ArrayAdapter<StringWithTag>(SettingsActivity.this,R.layout.simple_spinner_item1, myList);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner_set1.setAdapter(adapter3);
Создаем слушатель для списка1:
spinner_set1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (spinner_set1.getItemAtPosition(position).toString().equals(spinner_set1.getItemAtPosition(position).toString())) {
// у меня происходит наполнение временного списка из списка2(lowList)
tempList.clear();
for (int i=0;i<lowList.size();i++){
if (lowList.get(i).BlockID.equals(String.valueOf(topList.get(position).ID))){
tempList.add(new StringWithTag(lowList.get(i).ID,lowList.get(i).BlockID, (Object) lowList.get(i).tag));
}
}
ArrayAdapter adapter2 = new ArrayAdapter<StringWithTag>(SettingsActivity.this,R.layout.simple_spinner_item1, tempList);
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner_set2.setAdapter(adapter2);
//установка реагирования на выборку значений из списка2
spinner_set2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String strModel = spinner_set2.getItemAtPosition(position).toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}}
Успехов!