【问题标题】:How to get all child object in spinner with Firebase Android如何使用 Firebase Android 在微调器中获取所有子对象
【发布时间】:2016-12-01 07:08:10
【问题描述】:

请检查上图, 我想从 Android 的 Firebase 中获取微调器中的“Basit”和“Kashif”

mdatabase.child("Orders/Particulars").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot areaSnapshot: dataSnapshot.getChildren()) {
                String Particulars = areaSnapshot.child("Basit").getValue(String.class);
                final String[] areas = {Particulars};
                ArrayAdapter<String> areasAdapter = new ArrayAdapter<String>(OrderActivity.this, android.R.layout.simple_spinner_item, areas);
                areasAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                particular.setAdapter(areasAdapter);
            }
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

【问题讨论】:

  • 我们不是代码编写服务。请分享你自己做了什么,遇到了什么样的问题

标签: android firebase firebase-realtime-database


【解决方案1】:

下面的代码将获取所有值的列表...最后将列表添加到微调器中需要的地方.....

mDatabaseref.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot snapshot) {
            BTLog.d(TAG, "There are " + snapshot.getChildrenCount() + " blog posts");
            isdList.clear();
            isdAdapter = new BTIsdAdapter(isdList);
            isdAdapter.notifyDataSetChanged();
            for (DataSnapshot postSnapshot : snapshot.getChildren()) {
                BTIsdDetails post = postSnapshot.getValue(BTIsdDetails.class);
                BTIsdDetails btIsdDetails = new BTIsdDetails(post.getName(), post.getId());
                isdList.add(btIsdDetails);
                BTLog.d(TAG, " -------------------------- " + post.getName());
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            hideProgressDialog();
            BTLog.d(TAG, "The read failed: ");
        }
    });

BTIsdDetails 是 pojo 类

【讨论】:

  • 根据您的要求更改代码并尝试。
【解决方案2】:

因为您需要在微调器中添加键。执行以下操作..

mDatabaseref.child("Orders").child("Particulars").addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot snapshot) {
       for(DataSnapshot postSnapshot : snapshot.getChildren()){
            Log.d("Tag","Key : " + postSnapshot.getKey())
            // make string array of keys
       }
       // add spinner adapter code here
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        hideProgressDialog();
        BTLog.d(TAG, "The read failed: ");
    }
});

希望对你有所帮助。

【讨论】:

    猜你喜欢
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多