Android 适配器类notifydatachange不工作
我想将按钮的可见性从“喜欢”更改为“不喜欢”,如果按下按钮,则从“不喜欢”更改为“喜欢” api将被调用,但只更改一次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
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);
}
}
}