Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 构造函数ArrayAdapter<;字符串>;是否未定义-super()已标记_Android_Undefined_Adapter_Android Arrayadapter_Super - Fatal编程技术网

Android 构造函数ArrayAdapter<;字符串>;是否未定义-super()已标记

Android 构造函数ArrayAdapter<;字符串>;是否未定义-super()已标记,android,undefined,adapter,android-arrayadapter,super,Android,Undefined,Adapter,Android Arrayadapter,Super,我现在有点无助 我有以下代码 public class ListViewAdapter<String> extends ArrayAdapter<String> { private final Context context; private final int textViewResourceId; private final int[] itemResourceIds; private final ArrayList<String> list; publ

我现在有点无助

我有以下代码

public class ListViewAdapter<String> extends ArrayAdapter<String> {
private final Context context;
private final int textViewResourceId;
private final int[] itemResourceIds;
private final ArrayList<String> list;

public ListViewAdapter(Context context, int textViewResourceId,
    int[] itemResourceIds, ArrayList<String> list) {
        super(context, textViewResourceId, itemResourceIds, list);
        this.context = context;
        this.textViewResourceId = textViewResourceId;
        this.itemResourceIds = itemResourceIds;
        this.list = list;
    }

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // some code...
}
}
公共类ListViewAdapter扩展了ArrayAdapter{
私人最终语境;
私有最终int textViewResourceId;
私有final int[]itemResourceId;
私人最终阵列列表;
公共ListViewAdapter(上下文,int textViewResourceId,
int[]ItemResourceId,ArrayList列表){
super(上下文、textViewResourceId、ItemResourceId、列表);
this.context=上下文;
this.textViewResourceId=textViewResourceId;
this.ItemResourceId=ItemResourceId;
this.list=列表;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//一些代码。。。
}
}
但是eclipse标记了超级(…)线,我不明白为什么

它告诉我:

The constructor ArrayAdapter<String>(Context, int, int[], ArrayList<String>) is undefined
构造函数ArrayAdapter(Context,int,int[],ArrayList)未定义
但我不是这样定义的吗


请在此帮助我。

当您使用super时,必须调用父类定义的构造函数之一

如您所见,ArrayAdapter具有以下可用构造函数:

ArrayAdapter(Context context, int resource)

ArrayAdapter(Context context, int resource, int textViewResourceId)

ArrayAdapter(Context context, int resource, String[] objects)

ArrayAdapter(Context context, int resource, int textViewResourceId, String[] objects)

ArrayAdapter(Context context, int resource, List<String> objects)

ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects)
接收xml布局文件的id,然后接收文本字段的id

还有这个

ArrayAdapter(Context context, int resource, List<T> objects)
或者只是

 super(context, itemResourceIds[0], list); 
但这取决于
itemResourceIds
的实际内容

如果您正在实现整个适配器,那么您并不真正关心要传递给父级的id是什么,因此您可以简单地将其更改为

 super(context, 0, list); 
因为在父类中没有人会使用它


无论如何,如果你自己想实现所有的事情,你可以考虑扩展<代码> BaseAdvult<代码>,而不是<代码> ARAYAdvuler < /C>。因为BaseAdvor在构造函数中不需要任何参数,并且你可能不需要ARAYAdulter的任何功能。

当你使用Suffer时,您必须调用父类定义的构造函数之一

如您所见,ArrayAdapter具有以下可用构造函数:

ArrayAdapter(Context context, int resource)

ArrayAdapter(Context context, int resource, int textViewResourceId)

ArrayAdapter(Context context, int resource, String[] objects)

ArrayAdapter(Context context, int resource, int textViewResourceId, String[] objects)

ArrayAdapter(Context context, int resource, List<String> objects)

ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects)
接收xml布局文件的id,然后接收文本字段的id

还有这个

ArrayAdapter(Context context, int resource, List<T> objects)
或者只是

 super(context, itemResourceIds[0], list); 
但这取决于
itemResourceIds
的实际内容

如果您正在实现整个适配器,那么您并不真正关心要传递给父级的id是什么,因此您可以简单地将其更改为

 super(context, 0, list); 
因为在父类中没有人会使用它


无论如何,如果你自己想实现所有的事情,你可以考虑扩展<代码> BaseAdvult<代码>,而不是<代码> ARAYAdvuler-<代码>,因为基修器在构造函数中不需要任何参数,而且您可能不需要ArrayAdapter的任何功能。

这是因为没有构造函数接受您提供的参数。在中,我看不到任何构造函数与您的参数匹配(特别是第三个参数,数组)

,这是因为没有构造函数接受您提供的参数。在中,我没有看到任何构造函数与您的参数(特别是第三个参数,数组)匹配。

请仔细查看。没有接受int[]作为itemResourceId(不带“s”)的构造函数。 您可能正在寻找的构造函数是:

public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects)
仔细看一下。没有接受int[]作为itemResourceId(不带“s”)的构造函数。 您可能正在寻找的构造函数是:

public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects)

请查看文档:

ArrayAdapter
中没有将
int[]
作为第三个参数的构造函数,请尝试:

super(context, textViewResourceId, list);

请查看文档:

ArrayAdapter
中没有将
int[]
作为第三个参数的构造函数,请尝试:

super(context, textViewResourceId, list);
在代码中: super(context,textViewResourceId,ItemResourceId,list);“ItemResourceId”数组的整数不匹配,即与ArrayAdapter类中的任何公共构造函数defind不匹配。 所以请把它去掉。如果需要“ItemResourceId”,可以将其存储到成员变量中。 . 如果需要,请描述“ItemResourceId”的用途。然后我将尝试帮助您。

在您的代码中: super(context,textViewResourceId,ItemResourceId,list);“ItemResourceId”数组的整数不匹配,即与ArrayAdapter类中的任何公共构造函数defind不匹配。 所以请把它去掉。如果需要“ItemResourceId”,可以将其存储到成员变量中。 .
如果需要,请描述“ItemResourceId”的用途。然后我会尽力帮忙。

谢谢你的回答,但我真的很想用我目前掌握的方式来绘制参数。难道没有办法做到这一点吗?例如,通过创建一个额外的构造函数,您的构造函数就可以了。但是,如果在itemResources ID中有一个数组,则需要知道什么表示数组中的每个项,以便可以将正确的项传递给父项。查看我的更新很抱歉,但我仍然不明白为什么不能简单地传递数组而不是int。当我调用适配器时,我传递数组并从中获取我在getView()中使用的所有ItemResourceId。所以我不知道什么代表每个项目吗?父类只需要一个唯一的字段,视图中的所有项目也是如此。这就是为什么
super()
需要
int
而不是
数组的原因。您可以保留构造函数,因为您正在实现自己的
getView
,所以传递给父级的id并不重要,因此您只需将其更改为
super(context,0,list)