我的POJO无法解析构造函数ArrayAdapter

时间:2018-08-30 12:23:30

标签: java android android-studio

我正在尝试创建ArrayAdapter,以便单击列表中的元素并将其与所有结果一起使用。这就是我在做什么。

public ArrayAdapter<UserPojo> getAdapter(Context adapterContext) {
    return new ArrayAdapter<UserPojo>(adapterContext,android.R.layout.simple_list_item_1,getmList());
}


public LinkedList<String> getmList() {

    mQueryDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            fetchData(dataSnapshot);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

    return mList;
}

这是我用来单击元素并获取其结果的地方

public void clickListItems(ListView listView,final DatabaseReference mRootDatabase) {
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
            Toast.makeText(mContext, "Clicked: " + getmList().get(position), Toast.LENGTH_SHORT).show();
            userPojo = getAdapter(mContext).getItem(position);
            Intent intent = new Intent(mContext, UserEdit.class);
            intent.putExtra("uid", mRootDatabase.getKey());
            intent.putExtra("Name",getAdapter(mContext).getItem(position).getName());
            intent.putExtra("Email", getAdapter(mContext).getItem(position).getEmail());
            intent.putExtra("Pay", getAdapter(mContext).getItem(position).getPay());
            intent.putExtra("LastCon", getAdapter(mContext).getItem(position).getLastCon());
            intent.putExtra("FirstCon", getAdapter(mContext).getItem(position).getFirstCon();
            mContext.startActivity(intent);
        }
    });

}

我要面对的问题就是这一行

  

新   ArrayAdapter(adapterContext,android.R.layout.simple_list_item_1,getmList());

这样说

  

无法解析构造函数   'ArrayAdapter(android.content.Context,int,LinkedList'

1 个答案:

答案 0 :(得分:1)

ArrayAdapter类需要创建与super匹配的构造函数。 创建YourAdapter:

YourAdapter yourAdapter = new YourAdapter(getActivity(), listYourPojo);

您的适配器类:

public class YourAdapter extends ArrayAdapter<YourPojo> {

    public static List<YourPojo> listYourPojo = new ArrayList<>();
    Context context;

    public YourAdapter(Context context, List<YourPojo> listYourPojo) {
        super(context, 0, listYourPojo);
        this.context = context;
        this.listYourPojo  = listYourPojo;
    }
}

如果您的列表listYourPojo是静态的,则只需要按意图传递索引。