Используйте следующий код:
private String country_id = "", city_id = "";
private ArrayList<String> country_array;
и заполните свой массив данными:
for (int i = 0; i < items.getResponse().size(); i++) {
String get_country_name = items.getResponse().get(i).getCode();
country_array.add(get_country_name);
}
Теперь для вашего первого адаптера счетчика:
ArrayAdapter<String> country_spinnerArrayAdapter = new adapter_spinner(getActivity(), R.layout.spinner_header, country_array);
country_spinnerArrayAdapter.setDropDownViewResource(R.layout.spinner_item);
binding.etCountry.setAdapter(country_spinnerArrayAdapter);
binding.etCountry.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String selectedItemText = parent.getSelectedItem().toString();
if (position > 0) {
country_id = selectedItemText;
city_id = "";
Load_City(position - 1); // -1 to remove postion of the static country text
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
[117 ] Теперь ваш метод City (2nd spinner):
private void Load_City(int postion) {
ArrayList<String> city_array = new ArrayList<String>();
city_array.add(getString(R.string.city));
for (int i = 0; i < items.getResponse().get(postion).getCities().size(); i++) {
String get_city_name = items.getResponse().get(postion).getCities().get(i).getName();
city_array.add(get_city_name);
}
ArrayAdapter<String> country_spinnerArrayAdapter = new adapter_spinner(getActivity(), R.layout.spinner_header, city_array);
country_spinnerArrayAdapter.setDropDownViewResource(R.layout.spinner_item);
binding.etCity.setAdapter(country_spinnerArrayAdapter);
binding.etCity.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String selectedItemText = parent.getSelectedItem().toString();
if (position > 0) {
city_id = selectedItemText;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
Я надеюсь, что это помогло
Вы не показываете свои маршруты, но Вы почти наверняка поражаете различные маршруты в этом примере. Аргумент Вашему действию нужно назвать тем же как маркер в маршруте для сгенерированного URL для соответствия маркеру маршрута форме лямбды ActionLink. Что-либо, что не соответствует маркеру маршрутизации, будет добавлено как параметр строки запроса, как с Вашим вторым URL. Наблюдение параметра строки запроса является убедительными доказательствами, что имя, которое Вы передали неявно ("свойство" в этом случае) не соответствует маркеру маршрута. Так как Вы получаете различные результаты с тем же маркерным именем, я, таким образом, прихожу к заключению, что Вы поражаете различные маршруты. Кстати, я рекомендую создать ссылки с RouteLink вместо ActionLink, так, чтобы можно было быть уверены, которых направляют Вас, будет соответствовать.