gpt4 book ai didi

android - 使用 CursorAdapter 在 bindView 中获得一个位置

转载 作者:搜寻专家 更新时间:2023-11-01 07:55:58 25 4
gpt4 key购买 nike

我正在创建一个 ListView ,它有两个 TextView 和一个自定义 View 作为选择指示器,以加载数据我正在使用 CursorAdapter 并覆盖 bindViewnewView。但问题在于保留选择索引。

当我点击一个列表项时,我将它的位置保存到 View 中,如下所示

View v1=(View)view.findViewById(R.id.viewColor);
v1.setTag(position)

但是在 bindView 中,我没有找到可以通过从 View 标签中获取位置来执行匹配的位置,如下所示

 Integer position = (Integer) v1.getTag();

但我无法比较我们在 getView 中的获取方式。我试过 cur.getPosition() 是光标中记录的位置,它与 v1.getTag() 不匹配。

我尝试如下覆盖 getView,但没有获得准确的位置

@Override
public View getView(final int position, View convertView, ViewGroup parent){

this.position = position;
return super.getView(position, convertView, parent);


}

那么我怎样才能获得 bindView 中的位置呢?我需要使用 getView 还是什么?我探索了很多线程,但在涉及 bindView 时我没有得到任何明确的答案。

编辑

        @Override
public void onItemClick(AdapterView<?> adapter, View view, int position,
long arg3) {


view.setTag(position);
// i save the position on list item click so that when adapter loads the
// the list i can match the position with the current one

}

enter image description here

最佳答案

为此,您首先需要覆盖 getView() 并在此处设置位置,稍后在 bindview() 中访问它。

@Override
public View getView(int position, View convertview, ViewGroup arg2) {
if (convbertview == null) {
LayoutInflater inflater = LayoutInflater.from(context);
convertview = inflater.inflate(R.layout.your layout,
null);
}
convertview.setTag(position);
return super.getView(position, convbertview, arg2);
}

并在 bindView() 中获取您的位置

@Override
public void bindView(View view, Context context, Cursor cursor) {
int position=(Integer) view.getTag();//here is the position

}

关于android - 使用 CursorAdapter 在 bindView 中获得一个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27666203/

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