gpt4 book ai didi

android - notifydatasetchanged 后自定义列表适配器中的位置问题?

转载 作者:行者123 更新时间:2023-11-30 04:46:40 25 4
gpt4 key购买 nike

friend ,

我正在为 android ListView 使用以下自定义适配器我面临的问题是调用 notifydatasetchanged() 后位置错误;

我第一次将数据与列表位置绑定(bind)时效果很好,但在我调用 notifydatasetchanged() 之后;我把位置参数弄错了

请指导我做错了什么任何帮助将不胜感激。

    public EfficientAdapter(Context context,List<DalCategories> value) {

mInflater = LayoutInflater.from(context);
obj = value;


}

public View getView(final int position, View convertView,
final ViewGroup parent) {
ViewHolder holder;


if(convertView == null)
{
convertView = mInflater.inflate(R.layout.list_category_item, null);

holder = new ViewHolder();
holder.TextTitle = (TextView) convertView.findViewById(R.id.list_item_title);
holder.checkBoxes = (CheckBox) convertView.findViewById(R.id.chkSubCategory);




convertView.setTag(holder);

}else
{
holder = (ViewHolder)convertView.getTag();

}


// while setting checkbox state after notify datasetchanged i get wrong position

if(obj.get(position).isIs_Selected())
{
holder.checkBoxes.setChecked(true);

}


holder.checkBoxes
.setOnCheckedChangeListener(new OnCheckedChangeListener() {

@Override
public void onCheckedChanged(
CompoundButton buttonView, boolean isChecked) {



if(obj.get(position).isIs_Any() && isChecked)
{

if( adapter != null)
{
adapter.notifyDataSetChanged();


}


}






}
});




holder.TextTitle.setText(obj.get(position).getTitle());



return convertView;
}
class ViewHolder
{
public TextView TextTitle;
public CheckBox checkBoxes;
}

@Override
public Filter getFilter() {
return null;
}

@Override
public long getItemId(int position) {
return 0;
}

@Override
public int getCount() {
return obj.size();
}

@Override
public Object getItem(int position) {
return obj.get(position);
}

}

最佳答案

我也在努力集成这个适配器,但我注意到你的 holder 类中缺少 static 关键字。每次给 holder 打电话,可能都不是你想的那样。

看看这个例子。 http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List14.html

关于android - notifydatasetchanged 后自定义列表适配器中的位置问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4725235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com