Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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
Android,如何在单击项目时更新listview中的Particular imageview_Android_Android Layout_Listview_Android Arrayadapter_Android Viewholder - Fatal编程技术网

Android,如何在单击项目时更新listview中的Particular imageview

Android,如何在单击项目时更新listview中的Particular imageview,android,android-layout,listview,android-arrayadapter,android-viewholder,Android,Android Layout,Listview,Android Arrayadapter,Android Viewholder,我在arrayadapter类中有一个ViewHolder,我想在listview中的特定项目上绑定单击操作,并需要在favoriteicon单击时更新项目的内容 我在getView方法中有绑定单击操作: class ViewHolder { public ImageView favoriteicon; public TextView title; public TextView time; public TextVi

我在arrayadapter类中有一个ViewHolder,我想在listview中的特定项目上绑定单击操作,并需要在favoriteicon单击时更新项目的内容

我在getView方法中有绑定单击操作:

 class ViewHolder
    {

       public ImageView favoriteicon;
        public TextView title;
        public  TextView time;
        public  TextView type;
        public TextView hidden_value_id;
        public  TextView hidden_image_name;
        public boolean imageset=false;
        public  ImageView imgView;
public ViewHolder(View base)
        {
            this.favoriteicon=(ImageView) base.findViewById(R.id.favoriteicon);
            this.title = (TextView) base.findViewById(R.id.title);
            this.time = (TextView) base.findViewById(R.id.time);
            this.type = (TextView) base.findViewById(R.id.type);
            this.imgView = (ImageView) base.findViewById(R.id.icon);
            this.hidden_value_id = (TextView) base.findViewById(R.id.hidden_value_id);
            this.hidden_image_name = (TextView) base.findViewById(R.id.hidden_image_name);


        }

}


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

        final ViewHolder holder;

        View rowView=view;

if(rowView==null) {


LayoutInflater inflater = (LayoutInflater) context
        .getSystemService(context.LAYOUT_INFLATER_SERVICE);

rowView = inflater.inflate(R.layout.new_listview_items, parent, false);
holder = new ViewHolder(rowView);


 rowView.setTag(holder);
}
        else {

holder=(ViewHolder)rowView.getTag();

 }


        holder.title.setText(title.get(position));
        holder.time.setText(time.get(position));
        holder.type.setText(type.get(position));
        holder.hidden_value_id.setText(id.get(position));

holder.hidden_image_name.setText(hidden_image_name.get(position));
if(holder.imageset==true)
{

 holder.favoriteicon.setImageResource(R.drawable.h);

}


        holder.favoriteicon.setOnClickListener(new 
 View.OnClickListener() {
            public void onClick(View b) {

holder.favoriteicon.setImageResource(R.drawable.h);
holder.imageset=true;


                 notifyDataSetChanged();

            }
        });




        return rowView;

    }

如果我有项目的位置,如何在项目单击时更新listview中的特定项目。

所以现在我想您有一个if-else语句,检查当前位置的项目是否受欢迎?现在发生的事情是,当单击图标图像时,您正在设置图标图像,但是您没有更改对象值。因此,当您上下滚动列表项并循环使用时,它将重置该值

你需要像这样的东西

holder.favoriteicon.setOnClickListener(new View.OnClickListener() {
        public void onClick(View b) {
           object.setFavourited(true); 
           holder.favoriteicon.setImageResource(R.drawable.h); 
        } 
    }); 

现在,这只是根据您发布的代码进行的猜测。如果你用剩下的适配器代码更新了这个问题,我可以更新我的答案

您是否调用notifyDataSetChanged?是。。但没有成功