我正在尝试使用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/

10-12 06:21