Android 适配器类notifydatachange不工作

Android 适配器类notifydatachange不工作,android,adapter,Android,Adapter,我想将按钮的可见性从“喜欢”更改为“不喜欢”,如果按下按钮,则从“不喜欢”更改为“喜欢” api将被调用,但只更改一次 package com.vipulashishsanket.vadakvadan.Adapter; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.view.LayoutInflater

我想将按钮的可见性从“喜欢”更改为“不喜欢”,如果按下按钮,则从“不喜欢”更改为“喜欢” api将被调用,但只更改一次

package com.vipulashishsanket.vadakvadan.Adapter;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.squareup.picasso.Picasso;
import com.vipulashishsanket.vadakvadan.EndPoints;
import com.vipulashishsanket.vadakvadan.R;
import com.vipulashishsanket.vadakvadan.SharedPrefManager;
import com.vipulashishsanket.vadakvadan.VideoPlayingActivity;
import com.vipulashishsanket.vadakvadan.fetchingClass.LikesId;
import com.vipulashishsanket.vadakvadan.fetchingClass.ThumbnailFetching;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import org.json.JSONException;
import org.json.JSONObject;

import de.hdodenhof.circleimageview.CircleImageView;

public class ThumbnailFetchingAdapter extends RecyclerView.Adapter<ThumbnailFetchingAdapter.ViewHolder>

{

    private Context mcontext;
    private List<ThumbnailFetching> mThumbnailFetchings;



    public ThumbnailFetchingAdapter(Context mcontext, List<ThumbnailFetching> mThumbnailFetchings)
    {
        this.mcontext=mcontext;
        this.mThumbnailFetchings=mThumbnailFetchings;

    }


    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view= LayoutInflater.from(mcontext).inflate(R.layout.card_feeds,parent,false);

        return new ThumbnailFetchingAdapter.ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull final ViewHolder holder, int position )
    {
        final ThumbnailFetching mthumbnailFetchings=mThumbnailFetchings.get(position);



        final String userid=mthumbnailFetchings.getUserid();
        final String postid=mthumbnailFetchings.getPostid();

        holder.like.setText(mthumbnailFetchings.getTotallikes());
        holder.comments.setText(mthumbnailFetchings.getTotalcomments());
        holder.grpname.setText(mthumbnailFetchings.getPartyname());
        holder.title.setText(mthumbnailFetchings.getTitle());
        if(mthumbnailFetchings.getImgurl().equals(""))
        {
            holder.thumbnail.setImageResource(R.drawable.grpprofilepic_icon);
        }
        else
        {
            Picasso.with(mcontext).load(mthumbnailFetchings.getImgurl()).into(holder.profilepic);

        }

            Picasso.with(mcontext).load(mthumbnailFetchings.getThumbnailsurl()).into(holder.thumbnail);


        holder.thumbnail.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(mcontext, VideoPlayingActivity.class);
                intent.putExtra("uid",userid);
                intent.putExtra("postid",postid);
                intent.putExtra("videourl",mthumbnailFetchings.getVideourl());
                mcontext.startActivity(intent);
            }
        });

        final String userId= SharedPrefManager.getInstance(mcontext).getUid();
        final String likeid=mthumbnailFetchings.getLikeId();


        if(likeid.equals("1"))
        {

            holder.unlike.setVisibility(View.VISIBLE);
            holder.feedlike.setVisibility(View.GONE);
            holder.unlike.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v)
                {

                        holder.feedlike.setVisibility(View.VISIBLE);
                        holder.unlike.setVisibility(View.GONE);

                        String count=holder.like.getText().toString();
                        int c=Integer.parseInt(count)-1;
                        String check=String.valueOf(c);
                        holder.like.setText(check);
                        like(userId, postid,"0");


                }

            });
        }
        else if(likeid.equals("0"))
        {
            holder.unlike.setVisibility(View.GONE);
            holder.feedlike.setVisibility(View.VISIBLE);

            holder.feedlike.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View v)
                {

                        holder.unlike.setVisibility(View.VISIBLE);
                        holder.feedlike.setVisibility(View.GONE);

                        String count=holder.like.getText().toString();
                        int c=Integer.parseInt(count)+1;
                        String check=String.valueOf(c);
                        holder.like.setText(check);
                        like(userId, postid,"1");

              //      notifyItemChanged(holder.getAdapterPosition());



                }
            });
        }
        else
        {

        }






    }

    public void like(final String userid, final String postid,final String likeid)
    {
        StringRequest request=new StringRequest(Request.Method.POST,
                EndPoints.LikeUnlike,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response)
                    {

                        try
                        {
                            JSONObject object=new JSONObject(response);
                            Toast.makeText(mcontext,object.getString("message"),Toast.LENGTH_SHORT).show();
                        }
                        catch (JSONException e)
                        {
                            e.printStackTrace();
                        }

                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

            }
        }){
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String,String> map=new HashMap<>();
                map.put("liked",likeid);
                map.put("post_id",postid);
                map.put("user_id",userid);

                return map;
            }
        };

        RequestQueue requestQueue= Volley.newRequestQueue(mcontext);
        requestQueue.add(request);
    }






    @Override
    public int getItemCount() {
        return mThumbnailFetchings.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {

        //public RelativeLayout std_id;

        CircleImageView profilepic;
        TextView grpname,loaction,feedtime,like,comments,title;
        ImageView thumbnail,feedlike,unlike;

        public ViewHolder(View itemView) {
            super(itemView);

            profilepic=itemView.findViewById(R.id.grpProfilepic);
            grpname=itemView.findViewById(R.id.grp_name);
            loaction=itemView.findViewById(R.id.grp_loaction);
            feedtime=itemView.findViewById(R.id.feed_time);
            like=itemView.findViewById(R.id.feeds_like_count);
            comments=itemView.findViewById(R.id.feeds_comments_count);
            thumbnail=itemView.findViewById(R.id.feeds_thumbnails);
            title=itemView.findViewById(R.id.feed_title);
            feedlike=itemView.findViewById(R.id.feeds_like);
            unlike=itemView.findViewById(R.id.feeds_unlike);
        }
    }



}
package com.vipulashishsanket.vadakvadan.Adapter;
导入android.content.Context;
导入android.content.Intent;
导入android.content.SharedReferences;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ImageView;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.android.volley.AuthFailureError;
导入com.android.volley.Request;
导入com.android.volley.RequestQueue;
导入com.android.volley.Response;
导入com.android.volley.VolleyError;
导入com.android.volley.toolbox.StringRequest;
导入com.android.volley.toolbox.volley;
导入com.squareup.picasso.picasso;
导入com.vipulashishsanket.vadakvadan.EndPoints;
进口com.vipulashishsanket.vadakvadan.R;
导入com.vipulashishsanket.vadakvadan.SharedPrefManager;
导入com.vipulashishsanket.vadakvadan.VideoPlayingActivity;
导入com.vipulashishsanket.vadakvadan.fetchingClass.LikesId;
导入com.vipulashishsanket.vadakvadan.fetchingClass.ThumbnailFetching;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
导入androidx.annotation.NonNull;
导入androidx.recyclerview.widget.recyclerview;
导入org.json.JSONException;
导入org.json.JSONObject;
导入de.hdodenhof.circleimageview.circleimageview;
公共类ThumbnailFetchingAdapter扩展了RecyclerView.Adapter
{
私有上下文;
私有列表获取;
公共ThumbnailFetchingAdapter(上下文mcontext、列表mThumbnailFetchings)
{
this.mcontext=mcontext;
this.mThumbnailFetchings=mThumbnailFetchings;
}
@非空
@凌驾
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType){
视图=LayoutFlater.from(mcontext)。充气(R.layout.card_feeds,parent,false);
返回新的ThumbnailFetchingAdapter.ViewHolder(视图);
}
@凌驾
public void onBindViewHolder(@NonNull final ViewHolder,int位置)
{
final ThumbnailFetching mthumbnailFetchings=mthumbnailFetchings.get(位置);
最终字符串userid=mthumbnailFetchings.getUserid();
最终字符串postid=mthumbnailFetchings.getPostid();
holder.like.setText(mthumbnailFetchings.getTotallikes());
holder.comments.setText(mthumbnailFetchings.getTotalcomments());
holder.grpname.setText(mthumbnailFetchings.getPartyname());
holder.title.setText(mthumbnailFetchings.getTitle());
if(mthumbnailFetchings.getImgurl().equals(“”)
{
holder.thumbnail.setImageResource(R.drawable.grpprofilepic_图标);
}
其他的
{
将(mthumbnailFetchings.getImgurl())加载到(holder.profilepic)中;
}
毕加索.with(mcontext).load(mthumbnailFetchings.getThumbnailsurl())到(holder.thumbnail)中;
holder.thumboil.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
意向意向=新意向(mcontext,VideoPlayingActivity.class);
intent.putExtra(“uid”,userid);
意向。额外(“posted”,posted);
intent.putExtra(“videourl”,mthumbnailFetchings.getVideourl());
mcontext.startActivity(意图);
}
});
最后一个字符串userId=SharedPrefManager.getInstance(mcontext.getUid();
最后一个字符串likeid=mthumbnailFetchings.getLikeId();
如果(likeid.等于(“1”))
{
holder.visibility(View.VISIBLE);
holder.feedlike.setVisibility(视图已消失);
不同于.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v)
{
支架.feedlike.setVisibility(视图.VISIBLE);
holder.INVISION.SETVISITY(View.GONE);
字符串计数=holder.like.getText().toString();
intc=Integer.parseInt(count)-1;
字符串检查=String.valueOf(c);
holder.like.setText(检查);
like(userId,posted,“0”);
}
});
}
else if(likeid.equals(“0”))
{
holder.INVISION.SETVISITY(View.GONE);
支架.feedlike.setVisibility(视图.VISIBLE);
holder.feedlike.setOnClickListener(新视图.OnClickListener()
{
@凌驾
公共void onClick(视图v)
{
holder.visibility(View.VISIBLE);
holder.feedlike.setVisibility(视图已消失);
字符串计数=holder.like.getText().toString();
intc=Integer.parseInt(count)+1;
字符串检查=String.valueOf(c);
holder.like.setText(检查);
like(userId,posted,“1”);
//notifyItemChanged(holder.getAdapterPosition());
}
});
}
其他的
{
}
}
public void like(最终字符串userid、最终字符串postid、最终字符串likeid)
{
StringRequest=新的StringRequest(request.Method.POST,
EndPoints.LikeUnlike,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应)
{
尝试
{
JSONObject对象=新的JSONObject(响应);
Toast.makeText(mcontext,object.getString(“message”),Toast.LENGTH_SHORT.show();
}
捕获(JSONException e)
       if(likeid.equals("1")) {
            holder.unlike.setVisibility(View.VISIBLE);
            holder.feedlike.setVisibility(View.GONE);
         }else if(likeid.equals("0")){
            holder.unlike.setVisibility(View.GONE);
            holder.feedlike.setVisibility(View.VISIBLE);
        }

       holder.feedlike.setOnClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View v){
                      holder.unlike.setVisibility(View.VISIBLE);
                      holder.feedlike.setVisibility(View.GONE);
                      String count=holder.like.getText().toString();
                      int c=Integer.parseInt(count)+1;
                      String check=String.valueOf(c);
                      holder.like.setText(check);
                      like(userId, postid,"1");
              //      notifyItemChanged(holder.getAdapterPosition());
                }
            });

            holder.unlike.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v){
                      holder.feedlike.setVisibility(View.VISIBLE);
                      holder.unlike.setVisibility(View.GONE);
                      String count=holder.like.getText().toString();
                      int c=Integer.parseInt(count)-1;
                      String check=String.valueOf(c);
                      holder.like.setText(check);
                      like(userId, postid,"0");
                }
            }); 
like(userId, postid,"0",getAdapterPosition());
public class ThumbnailFetchingAdapter extends RecyclerView.Adapter<ThumbnailFetchingAdapter.ViewHolder>

{

    private Context mcontext;
    private List<ThumbnailFetching> mThumbnailFetchings;



    public ThumbnailFetchingAdapter(Context mcontext, List<ThumbnailFetching> mThumbnailFetchings)
    {
        this.mcontext=mcontext;
        this.mThumbnailFetchings=mThumbnailFetchings;

    }


    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view= LayoutInflater.from(mcontext).inflate(R.layout.card_feeds,parent,false);

        return new ThumbnailFetchingAdapter.ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull final ViewHolder holder, int position )
    {
        final ThumbnailFetching mthumbnailFetchings=mThumbnailFetchings.get(position);



        final String userid=mthumbnailFetchings.getUserid();
        final String postid=mthumbnailFetchings.getPostid();

        holder.like.setText(mthumbnailFetchings.getTotallikes());
        holder.comments.setText(mthumbnailFetchings.getTotalcomments());
        holder.grpname.setText(mthumbnailFetchings.getPartyname());
        holder.title.setText(mthumbnailFetchings.getTitle());
        if(mthumbnailFetchings.getImgurl().equals(""))
        {
            holder.thumbnail.setImageResource(R.drawable.grpprofilepic_icon);
        }
        else
        {
            Picasso.with(mcontext).load(mthumbnailFetchings.getImgurl()).into(holder.profilepic);

        }

            Picasso.with(mcontext).load(mthumbnailFetchings.getThumbnailsurl()).into(holder.thumbnail);


        holder.thumbnail.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(mcontext, VideoPlayingActivity.class);
                intent.putExtra("uid",userid);
                intent.putExtra("postid",postid);
                intent.putExtra("videourl",mthumbnailFetchings.getVideourl());
                mcontext.startActivity(intent);
            }
        });

        final String userId= SharedPrefManager.getInstance(mcontext).getUid();
        final String likeid=mthumbnailFetchings.getLikeId();


        if(likeid.equals("1"))
        {

            holder.unlike.setVisibility(View.VISIBLE);
            holder.feedlike.setVisibility(View.GONE);
            holder.unlike.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v)
                {

                        holder.feedlike.setVisibility(View.VISIBLE);
                        holder.unlike.setVisibility(View.GONE);

                        String count=holder.like.getText().toString();
                        int c=Integer.parseInt(count)-1;
                        String check=String.valueOf(c);
                        holder.like.setText(check);
mthumbnailFetchings.setLikeId("0");
                        like(userId, postid,"0",position);


                }

            });
        }
        else if(likeid.equals("0"))
        {
            holder.unlike.setVisibility(View.GONE);
            holder.feedlike.setVisibility(View.VISIBLE);

            holder.feedlike.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View v)
                {

                        holder.unlike.setVisibility(View.VISIBLE);
                        holder.feedlike.setVisibility(View.GONE);

                        String count=holder.like.getText().toString();
                        int c=Integer.parseInt(count)+1;
                        String check=String.valueOf(c);
                        holder.like.setText(check);
mthumbnailFetchings.setLikeId("1");
                        like(userId, postid,"1",position);

              //      notifyItemChanged(holder.getAdapterPosition());



                }
            });
        }
        else
        {

        }






    }

    public void like(final String userid, final String postid,final String likeid,int position)
    {
        StringRequest request=new StringRequest(Request.Method.POST,
                EndPoints.LikeUnlike,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response)
                    {

                        try
                        {  ThumbnailFetchingAdapter.this.notifyItemChange(position);
                            JSONObject object=new JSONObject(response);
                            Toast.makeText(mcontext,object.getString("message"),Toast.LENGTH_SHORT).show();
                        }
                        catch (JSONException e)
                        {
                            e.printStackTrace();
                        }

                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

            }
        }){
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String,String> map=new HashMap<>();
                map.put("liked",likeid);
                map.put("post_id",postid);
                map.put("user_id",userid);

                return map;
            }
        };

        RequestQueue requestQueue= Volley.newRequestQueue(mcontext);
        requestQueue.add(request);
    }






    @Override
    public int getItemCount() {
        return mThumbnailFetchings.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder {

        //public RelativeLayout std_id;

        CircleImageView profilepic;
        TextView grpname,loaction,feedtime,like,comments,title;
        ImageView thumbnail,feedlike,unlike;

        public ViewHolder(View itemView) {
            super(itemView);

            profilepic=itemView.findViewById(R.id.grpProfilepic);
            grpname=itemView.findViewById(R.id.grp_name);
            loaction=itemView.findViewById(R.id.grp_loaction);
            feedtime=itemView.findViewById(R.id.feed_time);
            like=itemView.findViewById(R.id.feeds_like_count);
            comments=itemView.findViewById(R.id.feeds_comments_count);
            thumbnail=itemView.findViewById(R.id.feeds_thumbnails);
            title=itemView.findViewById(R.id.feed_title);
            feedlike=itemView.findViewById(R.id.feeds_like);
            unlike=itemView.findViewById(R.id.feeds_unlike);
        }
    }



}