RaguSubedi Ответов: 1

Как установить содержимое второго прядильщика в зависимости от элемента, выбранного в первом прядильщике.


Спасибо, что нашли место, чтобы спросить.

У меня есть две блесны.

Первый - для Штатов, а их 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 утверждение - это то, что вы видите.

1 Ответов

Рейтинг:
1

Member 14671000

пакет com.пример.spinr;

импорт androidx.совместимости приложений.приложение.AppCompatActivity;

импорт android.os.Bundle;
импорт android.view.View;
импорт android.widget.AdapterView;
импорт android.widget.Адаптер массива;
импорт android.widget.Волчок;
импорт android.widget.TextView;

импорт java.lang.reflect.Массив;

public class MainActivity расширяет AppCompatActivity {
Счетчик spinner2, spinner3,spinner4,spinner5;
Виджет TextView виджет TextView ;
String[] countryName={"Лаос","Мьянма","Турция","Канада"};
@Ручная коррекция
protected void onCreate(Bundle savedInstanceState) {
супер.метод onCreate(savedInstanceState);
setContentView(R. layout.activity_main);

spinner2=(Spinner) findViewById(R. id.spinner2);
виджет TextView=(виджет TextView)findViewById, чтобы найти(Р. ИД.виджет TextView);
ArrayAdapter aa=новый ArrayAdapter(this,android.R.layout.simple_list_item_1,countryName);
aa.setDropDownViewResource(android.R.layout.simple_list_item_1);
spinner2.setAdapter(АА);
spinner2.setOnItemSelectedListener(новый AdapterView.OnItemSelectedListener() {
@Ручная коррекция
public void onItemSelected(AdapterView parent, View view, int position, long id) {
виджет TextView.помощью setText(родитель.getItemAtPosition(должность).toString());
если (позиция == 0) {
textView.setText("Лаос");

} else if (Позиция == 1) {
textView.setText("Лаос-это");

} else if (позиция == 2) {
виджет TextView.помощью setText("Лаос я");

} else if (позиция == 3) {
textView.setText("выбран Лаос");

}
}

@Ручная коррекция
public void onNothingSelected(AdapterView parent) {

}
});

spinner2=(Spinner) findViewById(R. id.spinner2);
виджет TextView=(виджет TextView)findViewById, чтобы найти(Р. ИД.виджет TextView);
ArrayAdapter bb=новый ArrayAdapter(this,android.R.layout.simple_list_item_1,countryName);
aa.setDropDownViewResource(android.R.layout.simple_list_item_1);
spinner3.setAdapter(ВВ);
spinner3.setOnItemSelectedListener(новый AdapterView.OnItemSelectedListener() {
@Ручная коррекция
public void onItemSelected(AdapterView parent, View view, int position, long id) {
виджет TextView.помощью setText(родитель.getItemAtPosition(должность).toString());
если (позиция == 0) {
textView.setText("Лаос");

} else if (Позиция == 1) {
textView.setText("Лаос-это");

} else if (позиция == 2) {
виджет TextView.помощью setText("Лаос я");

} else if (позиция == 3) {
textView.setText("выбран Лаос");

}
}

@Ручная коррекция
public void onNothingSelected(AdapterView parent) {

}
});

spinner4=(Spinner) findViewById(R. id.spinner4);
виджет TextView=(виджет TextView)findViewById, чтобы найти(Р. ИД.виджет TextView);
ArrayAdapter cc=new ArrayAdapter(this,android.R.layout.simple_list_item_1,countryName);
aa.setDropDownViewResource(android.R.layout.simple_list_item_1);
spinner4.setAdapter(куб.);
spinner4.setOnItemSelectedListener(новый AdapterView.OnItemSelectedListener() {
@Ручная коррекция
public void onItemSelected(AdapterView parent, View view, int position, long id) {
виджет TextView.помощью setText(родитель.getItemAtPosition(должность).toString());
если (позиция == 0) {
textView.setText("Лаос");

} else if (Позиция == 1) {
textView.setText("Лаос-это");

} else if (позиция == 2) {
виджет TextView.помощью setText("Лаос я");

} else if (позиция == 3) {
textView.setText("выбран Лаос");

}
}

@Ручная коррекция
public void onNothingSelected(AdapterView parent) {

}
});

spinner5=(Spinner) findViewById(R. id.spinner5);
виджет TextView=(виджет TextView)findViewById, чтобы найти(Р. ИД.виджет TextView);
ArrayAdapter dd=new ArrayAdapter(this,android.R.layout.simple_list_item_1,countryName);
aa.setDropDownViewResource(android.R.layout.simple_list_item_1);
spinner5.setAdapter(ДД);
spinner5.setOnItemSelectedListener(новый AdapterView.OnItemSelectedListener() {
@Ручная коррекция
public void onItemSelected(AdapterView parent, View view, int position, long id) {
виджет TextView.помощью setText(родитель.getItemAtPosition(должность).toString());
если (позиция == 0) {
textView.setText("Лаос");

} else if (Позиция == 1) {
textView.setText("Лаос-это");

} else if (позиция == 2) {
виджет TextView.помощью setText("Лаос я");

} else if (позиция == 3) {
textView.setText("выбран Лаос");

}
}

@Ручная коррекция
public void onNothingSelected(AdapterView parent) {

}
});

}
}


Richard Deeming

Необъяснимый, неформатированный дамп кода-это не решение проблемы.