这是我的代码。 onooltuud 是一个 ArrayList。我获取 Firebase 数据,然后添加 onooltuud arrayList。但 arrayList 大小为 0。小心从 Firebase 传入的数据。帮助我。
public class OnooltActivity2 extends AppCompatActivity implements View.OnClickListener {
ArrayList<String> onooltuud = new ArrayList<String>();`
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.onoolt_activity_2);
save = (Button) findViewById(R.id.save);
database = FirebaseDatabase.getInstance();
ref = database.getReference("db").child("davaa").child(String.valueOf(davaaniiNo) + "-iinDavaa");
Query query = ref.orderByChild("onooltDugaar");
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
int temp = (int) dataSnapshot.getChildrenCount();
Log.i("count", String.valueOf(temp));
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
Log.i("snapshot", snapshot.getValue().toString());
Onoolt onoolt = snapshot.getValue(Onoolt.class);
onoolts.add(onoolt.getOnooltDugaar());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(OnooltActivity2.this, "Датаг уншиж чадсангүй: " + databaseError.getCode(), Toast.LENGTH_SHORT).show();
}
});
Log.i("testSize:", String.valueOf(onoolts.size()));
这是我的 onoolts 添加的代码不起作用
最佳答案
它表示您的 Arraylist
对象 onooltuud
的 size()
为零 (= 0),因为您从未向其中添加任何内容。您像这样声明了 ArrayList
:
ArrayList<String> onooltuud = new ArrayList<String>();
当您添加元素时,您使用不同的名称:
onoolts.add(onoolt.getOnooltDugaar());
名称不对应:onooltuud 与 onoolts。
删除这一行:
onoolts.add(onoolt.getOnooltDugaar());
并输入这一行:
onooltuud.add(onoolt.getOnooltDugaar());
关于java - ArrayList添加在android中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50553957/