Как установить содержимое второго прядильщика в зависимости от элемента, выбранного в первом прядильщике.
Спасибо, что нашли место, чтобы спросить.
У меня есть две блесны.
Первый - для Штатов, а их 36, включая союзные территории. У меня есть XML-массив для состояний.
Второй - для округов, в каждом штате от четырех до 75 округов. У меня есть один XML-файл, в котором есть разные массивы округов для каждого штата.
Я хочу заполнить второй счетчик округами Штатов, выбранными в этом счетчике.
Мои массивы находятся в XML, и в общей сложности существует 740 округов в 36 штатах.
И, к сожалению, я получаю только районы андаман_анд_никобар (штат/Союзная территория), независимо от того, какой штат я выберу.
Пожалуйста помочь.
Что я уже пробовал:
final ArrayAdapter states = ArrayAdapter.createFromResource(this, R.array.States, android.R.layout.simple_spinner_item); final ArrayAdapter an = ArrayAdapter.createFromResource(this, R.array.andaman_and_nicobar, android.R.layout.simple_spinner_item); final ArrayAdapter ap = ArrayAdapter.createFromResource(this, R.array.andra_pradesh, android.R.layout.simple_spinner_item); final ArrayAdapter arp = ArrayAdapter.createFromResource(this, R.array.arunachal_pradesh, android.R.layout.simple_spinner_item); final ArrayAdapter as = ArrayAdapter.createFromResource(this, R.array.assam, android.R.layout.simple_spinner_item); states.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(states); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { String States = spinner.getItemAtPosition(position).toString(); switch (States) { case "ANDAMAN AND NICOBAR": { // if (spinner.getChildCount() == 1) { an.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); disspinner.setAdapter(an); } case "ANDRA PRADESH": { // if (R.array.States == 2) { ap.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); disspinner.setAdapter(ap); } case "ARUNACHAL PRADESH":{ // if (R.array.States == 3) { arp.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); disspinner.setAdapter(arp); } case "ASSAM":{ // if (R.array.States == 4) { as.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); disspinner.setAdapter(as); } default: { an.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); disspinner.setAdapter(an); } } } @Override public void onNothingSelected(AdapterView<?> parent) { } });} }
David Crow
String States = spinner.getItemAtPosition(position).toString();
Вы проверили значение
States
с помощью отладчика? Я подозреваю, что ценности, которые вы имеете в R.array.States
находятся не во всех колпачках, что и является вашим case
заявления ожидаются.- И, к сожалению, я получаю только районы андаман_анд_никобар (территория штата/Союза), независимо от того, какой штат я выберу."
Это потому, что ни один из
case
утверждения совпадают, таким образом, default
утверждение - это то, что вы видите.