Android 无法将项目转换为com.example.sharingapp.Contact

Android 无法将项目转换为com.example.sharingapp.Contact,android,android-arrayadapter,Android,Android Arrayadapter,我正在编写Android应用程序代码,并扩展了ArrayAdapter类,我收到了这条错误消息 项目无法转换为com.example.sharingapp.Contact 这是我的密码: package com.example.sharingapp; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import androi

我正在编写Android应用程序代码,并扩展了
ArrayAdapter
类,我收到了这条错误消息

项目无法转换为com.example.sharingapp.Contact

这是我的密码:

package com.example.sharingapp;

    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;
    import java.util.ArrayList;


    public class ContactAdapter extends ArrayAdapter<Contact> {

    private LayoutInflater inflater;
    private Context context;

    public ContactAdapter(Context context, ArrayList<Contact> contacts) {
        super(context, 0, contacts);
        this.context = context;
        this.inflater = LayoutInflater.from(context);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // getItem(position) gets the "contact" at "position" in the "contacts" ArrayList
        // (where "contacts" is a parameter in the ContactAdapter creator as seen above ^^)
        Contact contact =  getItem(position);

        String username = "Username: " + contact.getUsername();
        String email = "Email: " + contact.getEmail();

        // Check if an existing view is being reused, otherwise inflate the view.
        if (convertView == null) {
            convertView = inflater.from(context).inflate(R.layout.contactlist_contact, parent, false);
        }

        TextView username_tv = (TextView) convertView.findViewById(R.id.username_tv);
        TextView email_tv = (TextView) convertView.findViewById(R.id.email_tv);
        ImageView photo = (ImageView) convertView.findViewById(R.id.contacts_image_view);

        photo.setImageResource(android.R.drawable.ic_menu_gallery);

        username_tv.setText(username);
        email_tv.setText(email);

        return convertView;
    }
}
package com.example.sharingapp;
导入android.content.Context;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.ImageView;
导入android.widget.TextView;
导入java.util.ArrayList;
公共类ContactAdapter扩展了ArrayAdapter{
私人充气机;
私人语境;
公共联系人适配器(上下文、ArrayList联系人){
超级(上下文,0,联系人);
this.context=上下文;
this.inflater=layoutiner.from(上下文);
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//getItem(position)获取“联系人”数组列表中“位置”处的“联系人”
//(其中“contacts”是ContactAdapter creator中的一个参数,如上所示^^)
联系人=获取项目(位置);
字符串username=“username:”+contact.getUsername();
String email=“email:+contact.getEmail();
//检查是否正在重用现有视图,否则将视图充气。
if(convertView==null){
convertView=充气机。从(上下文)。充气(R.layout.contactlist\u contact,parent,false);
}
TextView用户名\u tv=(TextView)convertView.findViewById(R.id.username\u tv);
TextView email\u tv=(TextView)convertView.findViewById(R.id.email\u tv);
ImageView照片=(ImageView)convertView.findViewById(R.id.contacts\u image\u view);
photo.setImageResource(android.R.drawable.ic_菜单_图库);
用户名\ u tv.setText(用户名);
email_tv.setText(电子邮件);
返回视图;
}
}
错误是指以下行:


Contact Contact=getItem(位置)

您需要在适配器中保留“联系人”列表

你需要像这样的东西:

private LayoutInflater inflater;
private Context context;
private ArrayList<Contact> contactList = new ArrayList<>();

问题未解决,它仍然给我相同的错误。对于线路返回联系人。get(位置)它给我错误联系人无法解决。我尝试用contactList替换联系人,现在它给我两个不同线路返回联系人列表的相同错误。get(位置)和在Contact Contact=getItem中(职位)。谢谢你所做的一切帮助。我已经解决了发生的问题。
    public ContactAdapter(Context context, ArrayList<Contact> contacts) {
       super(context, 0, contacts);
       this.context = context;
       this.inflater = LayoutInflater.from(context);
       this.contactsList = contacts;
    }
    @Override
    public Contact getItem(int position) {
        // TODO Auto-generated method stub
        return contacts.get(position);
    }