Android 无法将项目转换为com.example.sharingapp.Contact
我正在编写Android应用程序代码,并扩展了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
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);
}