I'm trying to do click on single item which is gated by Firebase recyclerview adapter by I getting some run time error.
This is my code for ImageViewHolder.class and I'm getting NullPOinter Exception.
This exception is caused on mClickListener so please give me some solution for this problem, I'm not getting proper idea about it.
package com.humbingo.asthanews.Settings;
import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
import com.humbingo.asthanews.R;
import com.squareup.picasso.Callback;
import com.squareup.picasso.NetworkPolicy;
import com.squareup.picasso.Picasso;
public class ImageViewHolder extends RecyclerView.ViewHolder {
private static final String TAG = "Firebase";
private View mView;
public Button shareBtn;
public Context context;
public ImageView imageView;
private ImageViewHolder.ClickListener mClickListener;
public ImageViewHolder(View itemView) {
super(itemView);
mView = itemView;
shareBtn = mView.findViewById(R.id.btnShare);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mClickListener.onItemClick(v, getAdapterPosition());
}
});
itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
mClickListener.onItemLongClick(v, getAdapterPosition());
return true;
}
});
}
public void setTitle(String title) {
TextView mPostTitle = mView.findViewById(R.id.postTitle);
Log.d(TAG, "This is Title||-- " + title);
mPostTitle.setText(title);
}
public void setDesc(String desc) {
TextView mPostDesc = mView.findViewById(R.id.postDesc);
mPostDesc.setText(desc);
Log.d(TAG, "This is Description||-- " + desc);
}
public void setImage(final Context ctx, final String imageStr) {
imageView = mView.findViewById(R.id.postImg);
// Picasso.with(ctx).load(imageStr).into(imageView);
Picasso.with(ctx).load(imageStr).networkPolicy(NetworkPolicy.OFFLINE).into(imageView, new Callback() {
@Override
public void onSuccess() {
}
@Override
public void onError() {
Log.e(TAG, "setImage: Error Message ");
Picasso.with(ctx).load(imageStr).into(imageView);
}
});
}
//Interface to send callbacks...
public interface ClickListener{
public void onItemClick(View view, int position);
public void onItemLongClick(View view, int position);
}
public void setOnClickListener(ImageViewHolder.ClickListener clickListener){
mClickListener = clickListener;
}
}