首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将firebase数据添加到Spinner?

如何将firebase数据添加到Spinner?
EN

Stack Overflow用户
提问于 2017-01-25 18:50:17
回答 2查看 6.9K关注 0票数 1

我是Firebase的新手。我想将Firebase数据添加到我的微调器中。我遵循了这个答案How to get a String List from Firebase to fill a Spinner,但是我的微调工具没有接收到任何东西。

这是我的代码:

代码语言:javascript
复制
//Value event listener for realtime data update
        ref.child("Tabela-Consulta").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot snapshot) {

                final List<String> nomeConsulta = new ArrayList<String>();

                for (DataSnapshot postSnapshot : snapshot.getChildren()) {
                    //Getting the data from snapshot
                    TabelaConsulta consultaName = postSnapshot.child("nomeconsulta").getValue(TabelaConsulta.class);
                    nomeConsulta.add(consultaName.getConsultanome());


                    // Creating adapter for spinner
                    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, nomeConsulta);
                    // Drop down layout style - list view with radio button
                    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                    // attaching data adapter to spinner
                    spinner.setAdapter(dataAdapter);

                }

            }

            @Override
            public void onCancelled(FirebaseError firebaseError) {
                System.out.println("The read failed: " + firebaseError.getMessage());
            }
        });

我的数据模型:

代码语言:javascript
复制
public class TabelaConsulta {

    private String consultanome;



    public TabelaConsulta(){

    }


    public String getConsultanome() {
        return  consultanome;
    }

    public void setConsultanome(String consultanome){
        this.consultanome = consultanome;
    }



}

谢谢

EN

回答 2

Stack Overflow用户

发布于 2017-10-22 21:29:39

试试这个:

代码语言:javascript
复制
myRef.child("Tabela-Consulta").child("nomeconsulta").addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            final List<String> nomeConsulta = new ArrayList<String>();

            for (DataSnapshot areaSnapshot : dataSnapshot.getChildren()) {
                String consultaName = areaSnapshot.getValue(String.class);
                nomeConsulta.add(consultaName);
            }

            ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(YOUR_ACTIVITY.this, android.R.layout.simple_spinner_item, nomeConsulta);
            arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            spinner.setAdapter(skularAdapter);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });

请记住定义您的firebase引用:

代码语言:javascript
复制
FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference myRef = database.getReference("YOUR_REFERENCE");

并定义您的微调器:

代码语言:javascript
复制
Spinner spinner = (Spinner) findViewById(YOUR_SPINNER);

还要让你的数据库看起来像这样:

通过像这样添加您的值:

将您的值放入" ",然后使用[]关闭所有内容。

希望它能帮上忙!

票数 2
EN

Stack Overflow用户

发布于 2017-01-25 19:13:40

请关注以下内容

Firebase网址:https://example-id:firebaseio.com/Tabela-Consulta

MainActivity.java

代码语言:javascript
复制
    public class MainActivity extends Activity {
        private List<String> nomeConsulta = new ArrayList<String>();
        private ArrayAdapter<String> dataAdapter;
        private DatabaseReference mDatabaseReference;
        private Spinner mSpinner

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            dataAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, nomeConsulta);
            // Drop down layout style - list view with radio button
            dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            mSpinner = (Spinner)findViewById(R.id.your_reference_spinner);
            mSpinner.setAdapter(dataAdapter);

            mDatabaseReference = FirebaseDatabase.getInstance().getReference();

            mDatabaseReference.child("Tabela-Consulta").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot snapshot: snapshot.getChildren()) {
                    TabelaConsulta data = snapshot.getValue(TabelaConsulta.class);
                    nomeConsulta.add(data.getConsultanome());
                }
                dataAdapter.notifyDataSetChanged();
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41849638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档