Динамически загружать значения счетчика

#java #android #mobile

#java #Android #Мобильный

Вопрос:

Я пытаюсь динамически загружать значения в свой счетчик, но здесь я получаю сообщение об ошибке «this, android.R.layout.simple_spinner_item, colors» Ошибка:

Ошибка: (109, 52) ошибка: не найден подходящий конструктор для ArrayAdapter(GuestListFragment,int,String[]) конструктора ArrayAdapter.ArrayAdapter(Context,int,int) неприменим (несоответствие аргументов; GuestListFragment не может быть преобразован в контекст) конструктор ArrayAdapter.ArrayAdapter(Context,int,String[]) неприменим (несоответствие аргументов; GuestListFragment не может быть преобразован в контекст) конструктор ArrayAdapter.ArrayAdapter(Context, int,List) неприменим (несоответствие аргументов; GuestListFragment не может быть преобразован в контекст)

 // Spinner
colorSpinner = (Spinner) guestView.findViewById(R.id.dateSpinner);

// Array of choices
String colors[] = {"Red","Blue","White","Yellow","Black", "Green","Purple","Orange","Grey"};

// Update Spinner
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, colors);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // The drop down view
colorSpinner.setAdapter(spinnerArrayAdapter);
 

Ответ №1:

Попробуйте следующий код:

 String items[] = new String[2];
items[0] = String.valueOf("Item #1");
items[0] = String.valueOf("Item #2");

ArrayAdapter<String> spinnerArrayAdapter =
    new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, items);

spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setAdapter(spinnerArrayAdapter);
 

если вы находитесь внутри фрагмента, замените «this» на «getContext () ‘

Комментарии:

1. Спасибо .. , это против getContext на самом деле было проблемой, и ваш код тоже работает СПАСИБО!

2. Я ответил на это первым. Что дает @JoeCade?

Ответ №2:

В вашем Context аргументе есть проблема. Также попробуйте изменить new ArrayAdapter<String> -> new ArrayAdapter<> .

 ArrayAdapter<String> adapter = new ArrayAdapter<>(getContext(), R.layout. simple_spinner_item, colors);
 

Ответ №3:

Используйте ArrayAdapter spinnerArrayAdapter = новый ArrayAdapter(getContext(), android.R.layout.simple_spinner_item, цвета);

или ArrayAdapter spinnerArrayAdapter = новый ArrayAdapter(getActivity(), android.R.layout.simple_spinner_item, цвета);

вместо ArrayAdapter spinnerArrayAdapter = новый ArrayAdapter(getContext(), android.R.layout.simple_spinner_item, цвета);