2016-09-18 1 views
3

Я пытаюсь установить адаптер на блесны, но я не знаю, почему я получаю следующее сообщение об ошибке:Ошибка создания ArrayAdapter

Cannot resolve constructor 'ArrayAdapter(com.example.app.DialogBox,int, java.util.list)'

Вот метод, где я пытаюсь заполнить вертушку и набор адаптер для него:

public class DialogBox extends DialogFragment implements View.OnClickListener { 

    // To fill the age spinner 
    public ArrayAdapter<Integer> populateAgeSpinner() { 

     Log.d(TAG ,"populateAgeSpinner - Ini"); 

     List age = new ArrayList<String>(); 
     age.add(""); 

     for(int i = 18; i <= 100; i++) { 
      age.add(Integer.toString(i)); 
     } 

     ArrayAdapter<Integer> spinnerAgeAdapter = new ArrayAdapter<Integer>(this,R.layout.spinner_item_layout, age); 
     spinnerAgeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

     Log.d(TAG ,"populateAgeSpinner - Fi"); 

     return spinnerAgeAdapter; 

    } 
} 

И это spinner_item_layout.xml:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/spinner_text" 
     style="?android:attr/spinnerItemStyle" 
     android:singleLine="true" 
     android:layout_width="match_parent" 
     android:layout_height="30dp" 
     android:ellipsize="marquee" 
     android:background="@color/com_facebook_button_send_background_color" 
     android:textColor="#000" 
     android:textAlignment="inherit"/> 
+0

Вы устанавливаете адаптер в классе, который не расширяет «Контекст»? – Onik

+0

@Onik Хорошо, мой класс расширяет DialogFragment, я редактировал мой вопрос, как я могу это решить? – rainman

+0

Возможный дубликат [Невозможно разрешить конструктор ArrayAdapter] (http://stackoverflow.com/questions/28848735/cannot-resolve-constructor-arrayadapter) – Sufian

ответ

1

DialogFragment не распространяется на Context, необходимых для каждого из конструкторов ArrayAdapter. Вы должны использовать Context или любой из его наследников в конструкторе. Чтобы получить Context, вызовите метод getActivity()Fragment.

+0

Итак, как я могу поместить spinner внутри диалогового окна? – rainman

+0

Вы можете создать spinner в одном файле макета, например: view_spinner.xml, и установить этот .xml-файл в диалоговом окне, используя dialog.setContentView (R.layout.view_spinner); , Для получения дополнительной информации см. Это сообщение: http://stackoverflow.com/a/13342157/4795817 Это поможет создать и установить пользовательский диалог –