gpt4 book ai didi

java - ListViewAdapter extends CursorAdapter 滚动时顺序困惑

转载 作者:太空宇宙 更新时间:2023-11-03 13:14:52 24 4
gpt4 key购买 nike

我很困惑。我在网上找到了一些建议,但我无法在此代码上实现它。这是我的问题。每次我滚动时, ListView 的顺序都会困惑。我不知道该怎么做。我真的需要一些帮助。我会非常感谢你的好意。这是我的代码:

public class ListViewAdapterMeasurement extends CursorAdapter {
TextView lblContent, lblDate;
DBHelper dbHelper;
Button btnSelect;

public ListViewAdapterMeasurement(Context context, Cursor c) {
super(context, c, FLAG_REGISTER_CONTENT_OBSERVER);
}

@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View view = LayoutInflater.from(context).inflate(R.layout.details_feed, parent, false);

lblContent = (TextView) view.findViewById(R.id.lblContent);
lblDate = (TextView) view.findViewById(R.id.lblDate);

return view;
}

@Override
public void bindView(View view, Context context, Cursor cursor) {

View convertView = view;
if (convertView == null)
{
LayoutInflater vi = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = vi.inflate(R.layout.details_feed, null);
}

dbHelper = new DBHelper(getApplicationContext());

int intContentIndex = cursor.getColumnIndex((Tables.FeedTable.COLUMN_CONTENT));
String strContentIndex = cursor.getString(intContentIndex);
int intDateIndex = cursor.getColumnIndex((Tables.FeedTable.COLUMN_DATE));
String strDateIndex = cursor.getString(intDateIndex);

lblContent.setText(strContentIndex);
lblDate.setText(strDateIndex);


}
}

最佳答案

在 Android 中, View 可以多次使用,这意味着来自“newView”的已经实例化的 View 可以在“bindView”中使用不止一次。要清楚:“newView”并不经常被调用(<=)比“绑定(bind) View ”。因此,在“newView”中保存状态不是你能做的。在“newView”中,您只能操作计算从该适配器实例化的所有 View 的属性,这些 View 在“bindView”中未被操作。每个单行(或项目)的所有动态值都已在“bindView”中设置,因为可以(并且将会)出现重用 View 。在您的适配器中保存行(或项目)的单个内部 View 会导致意外行为并且无法完成。这是你的问题。当“view-object-pool”中没有已经实例化和空闲(未显示/可回收)的 View 时,将调用“newView”。此外,您还必须考虑重置“bindView”中的某些 subview ,以防此处出现已填充的 View ,并且在特殊情况下某些行/项目的属性保持未设置状态。最后:您无法知道在“bindView”中给定的 View 是新建的还是回收的。希望清楚的东西。快乐编码

关于java - ListViewAdapter extends CursorAdapter 滚动时顺序困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37908453/

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