当我从firebase检索第二项时出现错误



这是我的第一个android应用程序,我很兴奋,但我得到了错误在我的最后一个功能。检索第一个数据是可以的,但当我从firebase数据库检索第二个数据时,我得到了一个错误"java.lang.IndexOutOfBoundsException: Index: 1, Size 1 at java.util.ArrrayList.get()"

这是我的程序

//start here
DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("Users")
.child(FirebaseAuth.getInstance().getCurrentUser().getUid()).child("Wishlist");
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
List<String> wishlist_item = new ArrayList<String>();
for (DataSnapshot postSnapshot: snapshot.getChildren()) {
String data = postSnapshot.getValue(String.class);
wishlist_item.add(data);
}

//list 1
L1.setOnClickListener(new View.OnClickListener() {
String a = wishlist_item.get(0);
@Override
public void onClick(View view) {
if(a.isEmpty()){
Toast.makeText(wish_list.this, "Empty Field", Toast.LENGTH_SHORT).show();
}else{
Intent launchWish = new Intent(wish_list.this,web_view2.class);
launchWish.putExtra("k",a);
startActivity(launchWish);
}
}
});
//list 2
L2.setOnClickListener(new View.OnClickListener() {
String b = wishlist_item.get(1);
@Override
public void onClick(View view) {
if(b.isEmpty()){
Toast.makeText(wish_list.this, "Empty Field", Toast.LENGTH_SHORT).show();
}else{
Intent launchWish = new Intent(wish_list.this,web_view2.class);
launchWish.putExtra("k",b);
startActivity(launchWish);
}
}
});
//the end for 5 lists
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});

我只想从我的firebase检索5个数据。你可以在这里看到我的firebase表

你可以在这里看到我的firebase表

我从昨天开始就一直在修复这个问题,没有得到答案。我真的很感激你的帮助。

正如你在问题中提到的,你得到以下错误:

, . lang。IndexOutOfBoundsException: Index: 1, Size 1在java.util. arraylist .get()

因为你试图从数组列表"在一个不存在的位置。正如我在以下参考中看到的:

Firebase-root -> Users -> "GRUK ... cL03" -> Wishlist

那里有两个项目,然而,错误消息非常明确地说只有一个。最有可能的是,第二个用户的愿望清单"T9az…I4v2",我认为是真正的登录用户在Wishlist中包含一个项目,因此出现了错误。因此,要解决这个问题,请始终确保在使用它们之前可以在相应的索引处找到元素,而不是盲目地假设一个元素总是存在。

相关内容

  • 没有找到相关文章

最新更新