我正面临一个问题。我正在点击listview项目更改图像 示例(我正在将开始图像从灰色图像更改为星形图像)
但是当我滚动列表视图时,它会将之前的图像设置为灰色图像
我想知道如何阻止更改滚动
这是我的代码
imglayout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Boolean clickable = true;
String pro_tilte = TitleArray.get(position).toString();
Iterator itr = bookmarkTitleArray.iterator();
while(itr.hasNext()) {
String duplicatetile = itr.next().toString();
if(pro_tilte.equals(duplicatetile)) {
im4.setClickable(false);
clickable=false;
}
}
if(clickable) {
im4.setClickable(true);
String title=TitleArray.get(position);
for (Map.Entry<String,String> entry : LoadDataInBackEnd.productpageid.entrySet()) {
String key = entry.getKey();
if(key.equals(title)) {
gross_page_id= entry.getValue();
}
}
new savebookmark().execute("http://pac2.menaguale.com/api/user/user-bookmark");
ViewGroup viewGroup = (ViewGroup)v.getParent();
// access likecount TextView from feed_item layout
ImageView imagechange = (ImageView)viewGroup.findViewById(R.id.Pbookmark);
imagechange.setImageResource(R.drawable.star);
}
}
});
答案 0 :(得分:0)
您需要在适配器中跟踪对ListView
项所做的任何更改。如果要更改列表项并在滚动回视图时将其还原,则表示项目的状态未在适配器中捕获,以便在getView()
方法中使用。
由于ListView
会回收项目视图,因此需要在适配器/模型中的某处找到重新创建列表项所需的所有内容。
确保适配器中的列表项模型具有可捕获图像状态的字段,然后让onClick()
设置状态并让getView()
读取状态。