我正在尝试使用ArrayList填充ListView
这是我的代码:
ArrayList<Contact> results = mapper.readValue(response.toString(),
new TypeReference<ArrayList<Contact>>() { } );//results are coming OK
ContactsAdapter adapter = new ContactsAdapter(this, R.layout.list_view_items, results);//error is here
这是我的自定义适配器类,具有各自的构造函数:
public class ContactsAdapter extends ArrayAdapter<Contact> {
ArrayList<Contact> contactList = new ArrayList<>();
public ContactsAdapter(Context context, int textViewResourceId, ArrayList<Contact> objects) {
super(context, textViewResourceId, objects);
contactList = objects;
}
@Override
public int getCount() {
return super.getCount();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.list_view_items, null);
TextView contactTextView = (TextView) v.findViewById(R.id.contactTextView);
TextView phoneTextView = (TextView) v.findViewById(R.id.phoneTextView);
ImageView imageView = (ImageView) v.findViewById(R.id.smallImageView);
contactTextView.setText(contactList.get(position).getName());
phoneTextView.setText(contactList.get(position).getPhone().toString());
//imageView.setImageResource(animalList.get(position).getAnimalImage());
return v;
}
}
错误:
错误:(58,51)错误:类中的构造函数ContactsAdapter
ContactsAdapter不能应用于给定类型;需要:
找到上下文,int,ArrayList:>,int,ArrayList原因:实际参数
>不能通过以下方式转换为上下文
方法调用转换
我的数据是从jSON抓取的,并声明为ArrayList。我已经尝试过一些诸如修改构造函数之类的事情,但是我无法使其正常工作,并且卡住了。
提前致谢!
最佳答案
错误:(58,51)错误:类ContactsAdapter中的构造函数ContactsAdapter不能应用于给定类型;必需:找到Context,int,ArrayList :>,int,ArrayList 原因:实际参数>无法通过方法调用转换转换为上下文
您的Adapter
构造函数调用显然在一个匿名类内部,因此this
引用该匿名类,而不是您需要作为第一个参数的Context
。如果该代码在Activity
中,则只需在Activity
名称前加上this
;例如MyActivity.this
。
ContactsAdapter adapter = new ContactsAdapter(MyActivity.this,
R.layout.list_view_items,
results);
关于android - Android:类ContactsAdapter中的构造函数ContactsAdapter无法应用于给定类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38680149/