Ошибка
Process: forsaj.app, PID: 15019
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
at forsaj.app.ui.ZayavkiClientActivity$1.onBindViewHolder(ZayavkiClientActivity.java:53)
at forsaj.app.ui.ZayavkiClientActivity$1.onBindViewHolder(ZayavkiClientActivity.java:50)
Проблемный метод
@Override
protected void onStart() {
super.onStart();
FirebaseRecyclerOptions<OtvetShop> options=new FirebaseRecyclerOptions.Builder<OtvetShop>()
.setQuery(ZayavkaRef, OtvetShop.class).build();
FirebaseRecyclerAdapter<OtvetShop, OtvetShopHolder> adapter=new FirebaseRecyclerAdapter<OtvetShop, OtvetShopHolder>(options) {
@Override
protected void onBindViewHolder( @androidx.annotation.NonNull OtvetShopHolder holder, int position, @androidx.annotation.NonNull OtvetShop model) {
holder.txt_tovarname.setText(model.getTovarname());
holder.txt_tovarprice.setText(model.getTovarprice());
holder.txt_shopadress.setText(model.getMagazadress());
Picasso.get().load(model.getImage()).into(holder.image_tovar_shop);
}
@Override
public OtvetShopHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.item_shop,parent,false);
OtvetShopHolder holder=new OtvetShopHolder(view);
return holder;
}
};
recyclerView.setAdapter(adapter);
adapter.startListening();
}
}
OtvetShopHolder
public ItemShopClickLIstner lIstner;
public TextView txt_tovarname,txt_tovarprice,txt_shopadress;
public ImageView image_tovar_shop;
public AppCompatButton button_no_shop,button_yes_shop;
public OtvetShopHolder(View itemView){
super(itemView);
txt_shopadress=itemView.findViewById(R.id.text_shop_adress);
txt_tovarname=itemView.findViewById(R.id.text_tovar_name);
txt_tovarprice=itemView.findViewById(R.id.text_tovar_price);
image_tovar_shop=itemView.findViewById(R.id.image_tovar_shop);
image_tovar_shop=itemView.findViewById(R.id.image_tovar_shop);
}
public void setItemShopClickListner(ItemShopClickLIstner listner){this.lIstner=listner;}
@Override
public void onClick(View view){
lIstner.onClick(view,getAdapterPosition(),false);
}
}
OtvetShop(Adapter)
public class OtvetShop {
private String tovarname,tovarprice,magazadress,productId,date,time,image;
public OtvetShop(){
}
public OtvetShop(String tovarname, String tovarprice, String magazadress, String productId, String date, String time, String image) {
this.tovarname = tovarname;
this.tovarprice = tovarprice;
this.magazadress = magazadress;
this.productId = productId;
this.date = date;
this.time = time;
this.image = image;
}
public String getTovarname() {
return tovarname;
}
public void setTovarname(String tovarname) {
this.tovarname = tovarname;
}
public String getTovarprice() {
return tovarprice;
}
public void setTovarprice(String tovarprice) {
this.tovarprice = tovarprice;
}
public String getMagazadress() {
return magazadress;
}
public void setMagazadress(String magazadress) {
this.magazadress = magazadress;
}
public String getProductId() {
return productId;
}
public void setProductId(String productId) {
this.productId = productId;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
}
ItemShopClickLIstner
public interface ItemShopClickLIstner {
void onClick(View view, int position, boolean isLongClick);
}
Метод отправуи
private void SaveProductInfoToDatabase() {
Log.d("Arthur",DownloadImageUrl);
HashMap<String, Object> OtvetMap = new HashMap<>();
OtvetMap.put("tovarname", tovarname);
OtvetMap.put("tovarprice", tovarprice);
OtvetMap.put("magazadress", magazadress);
OtvetMap.put("image",DownloadImageUrl);
OtvetMap.put("productId", OtvetRandomKey);
OtvetMap.put("date", SaveCurrentDate);
OtvetMap.put("time", SaveCurrentTime);
otvetRef.child(OtvetRandomKey).updateChildren(OtvetMap).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
progressDialog.dismiss();
Toast.makeText(OtvetShopsClientActivity.this, "Ответ отправлен", Toast.LENGTH_SHORT).show();
mediaPlayerTwo.start();
} else {
progressDialog.dismiss();
String message = task.getException().toString();
Toast.makeText(OtvetShopsClientActivity.this, "Ошибка" + message, Toast.LENGTH_SHORT).show();
}
}
});
////сохранение заявки в базе данных конец////
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==GALLERYPICK&&resultCode==RESULT_OK&&data !=null){
ImageUri=data.getData();
image_otvet_clientu_photo.setImageURI(ImageUri);
}
}
}
Стринги используемые в данном методе
private String tovarname,tovarprice,magazadress,SaveCurrentDate,SaveCurrentTime,OtvetRandomKey;
private String DownloadImageUrl;
Почему так происходит если все инициализировано?