自定义适配器没有Id值

问题描述:

嗨即时试图从baseadapter填充listview和当在listview上选择时传播错误的id自定义适配器没有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; 
    } 

} 

任何帮助,您可以提供将是巨大的,请

你getItemId()应该返回ID 更多的代码可以是availble的。 所以应该像这个 - >

public long getItemId(int position) { 
     return AList.get(position).getID(); 
    } 

假设ID是漫长的,如果不是,然后使用 - >Long.parseLong(AList.get(position).getID());

+0

的'ID'是一个字符串... – user2340360 2013-05-05 22:16:40

+0

它显示错误用户界面右侧的ID?这个东西不行 - > 'holder.txtId.setText – 2013-05-05 22:27:14

+0

其余的字段填充正确的数据,所以这意味着这不是问题..或者我错了 – user2340360 2013-05-05 22:30:58