в первую очередь, чтобы поместить вас в кадр. Я извлекаю данные из firebase и помещаю их в listView. Все, что я начал с создания класса «Корзина продукта», затем «produitAdapter», затем после нескольких тестов я уверен что у меня есть доступ к данным в базе, но мне не удалось добавить его в параметр моего экземпляра класса produitaupanier, даже если я попытался поместить текст stati c только для теста, но та же проблема, и если я поставил «prod4 = новый Produitaupanier ("rob inet", "10 $"); " в onCreate его прогулка, по-видимому, я не могу создать экземпляр класса в методе lisentner события value
produitaupanier class enter code here
public class Produitaupanier {
//public int image;
public String produit;
public String prix;
public Produitaupanier() {}
public Produitaupanier( String produit, String prix) {
// this.image = image;
this.produit = produit;
this.prix = prix;
}
public String getproduit() {
return produit;
}
public String getprix() {
return prix;
}
public void setProduit(String text) {
this.produit = text;
}
public void setprix(String prix) {
this.prix = prix;
}
@NonNull
@Override
public String toString() {
return produit+prix;
}
}
produitadapter class enter code here
public class produitAdapter extends ArrayAdapter {
Context Adapter;
int adapterresourse;
produit[] produitresource;
public produitAdapter(@NonNull Context context, int resource, @NonNull produit[] prod) {
super(context, resource, prod);
Adapter=context;
adapterresourse=resource;
produitresource=prod;
}
@Nullable
@Override
public Object getItem(int position) {
return super.getItem(position);
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View row;
LayoutInflater rowinfalter=LayoutInflater.from(Adapter);
row=rowinfalter.inflate(adapterresourse,parent,false);
ImageView image1= (ImageView) row.findViewById(R.id.imageView);
ImageView image= (ImageView) row.findViewById(R.id.imageView2);
TextView namejava= (TextView) row.findViewById(R.id.textView3);
produit produito=produitresource[position];
namejava.setText(produito.text);
int Imageid=Adapter.getResources().getIdentifier(String.valueOf(produito.image),"drawable",Adapter.getPackageName());
image1.setImageResource(Imageid);
// image1.setImageResource(Integer.parseInt(produito.payer));
return row;
}
} и принципала класса
enter code here
public class panier extends AppCompatActivity {
TextView panier;
FirebaseAuth mAuth ;
String userID;
List<Produitaupanier> s;
Produitaupanier pro[]=new Produitaupanier[100];
Produitaupanier prod4 ;
Produitaupanier proddd;
Produitaupanier receivedData;
private ArrayList<Produitaupanier> list = new ArrayList<Produitaupanier>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_panier);
panier=(TextView) findViewById(R.id.textView5);
ListView list=(ListView) findViewById(R.id.panier);
mAuth = FirebaseAuth.getInstance();
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef= database.getReference("users");
FirebaseUser user = mAuth.getCurrentUser();
userID = user.getUid();
DatabaseReference key=myRef.child("8YPx1PLsETMntHRtv9foIoA2tSL2");
DatabaseReference key2=key.child("panier");
DatabaseReference key3=key2.child("numbers");
//Produitaupanier prod5=new Produitaupanier(R.drawable.fourencastable,"four encastrable","payer");
//Produitaupanier prod6=new Produitaupanier(R.drawable.lavevaisselleintegrable,"lave vaisselle integrable","payer");
key3.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
// prod4 = new Produitaupanier("jsdjhsdj", "77777");
for(DataSnapshot activitySnapShot: dataSnapshot.getChildren()) {
// String desc = activitySnapShot.child("produit").getValue(String.class);
// String title = activitySnapShot.child("prix").getValue(String.class);
prod4=new Produitaupanier("robinet","10$");
//receivedData = activitySnapShot.getValue(Produitaupanier.class);
// Toast.makeText(panier.this, receivedData.getproduit(), Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
Produitaupanier[] pro= {prod4}; //prod5,prod6};
ProduitAdapterPanier produitAdapte=new ProduitAdapterPanier(com.example.progress.panier.this,R.layout.listtemplate,pro);
list.setAdapter(produitAdapte);
}
public void paa(View view) {
}
} baseStructure
enter code here
"users" : {
"8YPx1PLsETMntHRtv9foIoA2tSL2" : {
"email" : "******",
"name" : "*******",
"panier" : {
"numbers" : {
"-MA0PCLZ0JV1QcmfstKu" : {
"prix" : "250$",
"produit" : "lave linge"
},
"-MA0PDMNrFoI5MrP8Lmc" : {
"prix" : "250$",
"produit" : "Robinet"
},
"-MA0PDSj4VJEYEvOZS1w" : {
"prix" : "250$",
"produit" : "lave linge"
}
}
},
сообщение об ошибке
enter code here
java.lang.NullPointerException: Attempt to read from field 'java.lang.String
com.example.progress.Produitaupanier.produit' on a null object reference
at com.example.progress.ProduitAdapterPanier.getView(ProduitAdapterPanier.java:52)
Спасибо.