Eudes Inácio
Eudes Inácio

Reputation: 33

How to add firebase data to Spinner android?

I'm new to Firebase. I want to add Firebase data to my spinner. I followed this answer How to get a String List from Firebase to fill a Spinner but my spinner doesn't receive anything.

Este é o meu node no firebase

This is my code:

//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());
            }
        });

My data model:

public class TabelaConsulta {

    private String consultanome;



    public TabelaConsulta(){

    }


    public String getConsultanome() {
        return  consultanome;
    }

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



}

Thanks

Upvotes: 1

Views: 7588

Answers (2)

Kjell Ove
Kjell Ove

Reputation: 21

Try this:

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) {

        }
    });

Remember to define your firebase reference:

FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference myRef = database.getReference("YOUR_REFERENCE");

And define your spinner:

Spinner spinner = (Spinner) findViewById(YOUR_SPINNER);

Also make make your database look like this:

Something

By adding your values like this:

Something_more

Put your values in " " and then close everything with [] .

Hope it helps!

Upvotes: 2

Charitha Ratnayake
Charitha Ratnayake

Reputation: 379

Please follow below

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

MainActivity.java :

    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) {

            }
        });

    }

Upvotes: 0

Related Questions