2016-09-18 84 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

您是否将适配器设置为不扩展'Context'的类? – Onik

+0

@Onik好吧,我的课是扩展DialogFragment我编辑我的问题我该如何解决这个问题? – rainman

+0

[无法解析构造函数ArrayAdapter]可能的重复(http://stackoverflow.com/questions/28848735/cannot-resolve-constructor-arrayadapter) – Sufian

回答

1

DialogFragment并不延伸ArrayAdapter构造函数中每一个所需的Context。您应该在构造函数中使用Context或其任何继承者。要获得Context请致电getActivity()方法Fragment

+0

那么,我怎么能把一个微调框内的对话框? – rainman

+0

您可以在一个布局文件中创建微调器,例如:view_spinner.xml,并使用dialog.setContentView(R.layout.view_spinner)将该.xml文件设置为对话框。 。欲了解更多信息,请参阅此帖:http://stackoverflow.com/a/13342157/4795817这将有助于创建和设置自定义对话框 –