Я пытаюсь добавить 2 прядильника в фрагмент. Эти прядильщики взаимосвязаны. Когда пользователь выбирает значение, второй счетчик будет заполнен значением. Пример: 1-й счетчик имеет 2 значения как «Автомобиль» & «Автобус». Когда пользователь выбирает «автомобиль», 2-й счетчик будет заполнен цветом автомобиля «Красный», «Синий». Если вы выбрали «Автобус», 2-й счетчик будет заполнен цветом шины «Зеленый», «Белый» ».Spinner не заселен фрагментом
Я сделал это в mainactivity успешно. Но когда я пытаюсь реализовать во фрагменте, 2-й счетчик не заполняется, и также нет ошибки.
Я предоставляю код, который я попытался реализовать в фрагменте.
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_info_form, container, false);
//spCountries = (Spinner) v.findViewById(R.id.idCrimePlace);
//set the spinners
crimePlace = (Spinner) rootView.findViewById(R.id.idCrimePlace);
metro = (Spinner) rootView.findViewById(R.id.idMetro);
crimePlace.setOnItemSelectedListener((AdapterView.OnItemSelectedListener) this);
crimePlace.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String spCrimePlace= String.valueOf(crimePlace.getSelectedItem());
//Toast.makeText(this, crimePlace, Toast.LENGTH_SHORT).show();
if(spCrimePlace.contentEquals("Car")) {
List<String> list = new ArrayList<String>();
list.add("Red");
list.add("Blue");
list.add("Others");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getActivity().getApplicationContext(),
android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
dataAdapter.notifyDataSetChanged();
metro.setAdapter(dataAdapter);
}
if(spCrimePlace.contentEquals("Bus")) {
List<String> list = new ArrayList<String>();
list.add("Green");
list.add("White");
list.add("Other");
ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(getActivity().getApplicationContext(),
android.R.layout.simple_spinner_item, list);
dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
dataAdapter2.notifyDataSetChanged();
metro.setAdapter(dataAdapter2);
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
return rootView;
}
Где вы настройки адаптера для 'crimePlace' блесны? Почему 'setOnItemSelectedListener' вызывается дважды на' crimePlace'? Второй 'setOnItemSelectedListener' сначала переопределит. – RadekJ
в том же фрагменте. метровой прядильщик будет заселен по полю. Выбран преступление. – Avijit
crimePlace вертушка получит значение от string.xml не дважды, первый один
Я также попытался комментируя линию, но не работает :( @radekJ – Avijit