Java 自定义适配器没有Id值
嗨,我正试图从Java 自定义适配器没有Id值,java,android,Java,Android,嗨,我正试图从baseadapter填充listview,当在listview上选择时,会传播错误的id 这是我的适配器 public class MyCustomBaseAdapter extends BaseAdapter { private static ArrayList<Custom> AList; private LayoutInflater inflat; public MyCustomBaseAdapter(Context context,
baseadapter
填充listview
,当在listview
上选择时,会传播错误的id
这是我的适配器
public class MyCustomBaseAdapter extends BaseAdapter {
private static ArrayList<Custom> AList;
private LayoutInflater inflat;
public MyCustomBaseAdapter(Context context, ArrayList<Custom> results) {
AList = results;
inflat = LayoutInflater.from(context);
}
public int getCount() {
return AList.size();
}
public Object getItem(int position) {
return AList.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = inflat.inflate(R.layout.suspect_list, null);
holder = new ViewHolder();
holder.txtName = (TextView) convertView.findViewById(R.id.suspect_name);
holder.txtSex = (TextView) convertView.findViewById(R.id.suspect_sex);
holder.txtId = (TextView) convertView.findViewById(R.id.suspect_id);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.txtName.setText(AList.get(position).getName());
holder.txtSex.setText(AList.get(position).getSex());
holder.txtId.setText(AList.get(position).getID());
return convertView;
}
static class ViewHolder {
TextView txtName;
TextView txtSex;
TextView txtId;
}
}
公共类MyCustomBaseAdapter扩展BaseAdapter{
私有静态数组列表;
私人住宅价格上涨;
公共MyCustomBaseAdapter(上下文、ArrayList结果){
AList=结果;
充气=从(上下文)开始的更平坦的布局;
}
public int getCount(){
返回AList.size();
}
公共对象getItem(int位置){
返回列表。获取(位置);
}
公共长getItemId(int位置){
返回位置;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
视窗座;
if(convertView==null){
convertView=充气。充气(R.layout.suspect_列表,空);
holder=新的ViewHolder();
holder.txtName=(TextView)convertView.findViewById(R.id.suspect\u name);
holder.txtSex=(TextView)convertView.findViewById(R.id.suspect_sex);
holder.txtId=(TextView)convertView.findViewById(R.id.suspect\u id);
convertView.setTag(支架);
}否则{
holder=(ViewHolder)convertView.getTag();
}
holder.txtName.setText(AList.get(position.getName());
holder.txtsecx.setText(AList.get(position.getSex());
holder.txtId.setText(AList.get(position.getID());
返回视图;
}
静态类视窗夹{
TextView-txtName;
TextView-txtSex;
TextView-txtId;
}
}
你能提供的任何帮助都会很好
更多的代码可以根据请求提供您的getItemId()应该返回id。
所以应该是这样->
public long getItemId(int position) {
return AList.get(position).getID();
}
假设ID是长的,如果不是,则使用->
long.parseLong(AList.get(position.getID())代码>并且它在UI上显示了错误的ID,对吗?这个东西不工作->holder.txtId.setText(AList.get(position.getID())代码>?其余字段正确填充数据,因此这意味着这不是问题所在。。还是我错了检查AList
变量的内容。观察在参数结果中获得的数据。可能只是出了点问题。