Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义适配器没有Id值_Java_Android - Fatal编程技术网

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
变量的内容。观察在参数
结果中获得的数据。可能只是出了点问题。