Как заполнить данные Firebase в спиннер с фрагментом - PullRequest
0 голосов
/ 18 апреля 2020

Я попытался отобразить данные firebase в spinner и использовать фрагмент . Я хотел бы отобразить cat_Name из Firebase. но после попытки запустить программу ничего не показывает. Но при попытке отобразить подсказку можно увидеть данные.

Firebase : Database : KucingKu

private void testList() {
    databaseKucingKu.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            if (getActivity() != null) {
                try {

                ArrayList<String> names = new ArrayList<String>();
                  for (DataSnapshot catSnapshot : dataSnapshot.getChildren()) {
                        cat_array.add(catSnapshot.getValue(Cat.class)); }
                   names.add("Select a cat");
                    for (int i = 0; i < cat_array.size(); i++) {
                        names.add(cat_array.get(i).getCat_Name());
                    }
                    Toast.makeText(getActivity(), names.toString(), Toast.LENGTH_LONG).show();

                   ArrayAdapter<String> adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_spinner_item, names);
                    adapter.setDropDownViewResource(android.R.layout.simple_list_item_1);
                    cmbCatlist.setAdapter(adapter);


                } catch (Exception e) {

                    //Toast.makeText(getActivity().getBaseContext(), "There are something wrong with your codes...", Toast.LENGTH_LONG).show();
                    // Failed to read value
             }
           }
        }
        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
            Log.e("Error", "Failed to read user", databaseError.toException());
        }
    });
}

Я вызвал функцию testList() внутри onCreateView():

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        View view = inflater.inflate(R.layout.customer_booking_fragment_activity, container, false);

        btnDatePicker = (Button) view.findViewById(R.id.button7);
         btnTimePicker = (Button) view.findViewById(R.id.button8);
        btnSubmit= (Button) view.findViewById(R.id.buttonSubmit);
        btnClear = (Button) view.findViewById(R.id.buttonSubmit2);
         tv = (TextView) view.findViewById(R.id.in_date);
         tvt = (TextView) view.findViewById(R.id.in_time);
         rd1 = (RadioButton) getActivity().findViewById(R.id.radioButton);
         rd2 = (RadioButton) getActivity().findViewById(R.id.radioButton2);
         cmbCatlist = (Spinner) getActivity().findViewById(R.id.catlist);
       // final ArrayAdapter<String> arrayAdapter= new ArrayAdapter<String>(this ,android.R.layout.simple_list_item_1,arraylist_cat);
        databaseKucingKu = FirebaseDatabase.getInstance().getReference().child("Cat");


        showTimePickerButton();
        showDatePickerButton();
        testList();

}

My Cat class

public class Cat {

    String Cat_ID;
    String Cat_Breed;
    String Cat_Colour;
    String Cat_Gender;
    String CustomerUsername;
    String Cat_Name;

    public Cat()
    {

    }

    public void setCustomerUsername(String customerUsername) {
        CustomerUsername = customerUsername;
    }

    public void setCat_Name(String cat_Name) {
        Cat_Name = cat_Name;
    }

    public void setCat_ID(String cat_ID) {
        Cat_ID = cat_ID;
    }

    public void setCat_Gender(String cat_Gender) {
        Cat_Gender = cat_Gender;
    }

    public void setCat_Colour(String cat_Colour) {
        Cat_Colour = cat_Colour;
    }

    public void setCat_Breed(String cat_Breed) {
        Cat_Breed = cat_Breed;
    }

    public String getCustomerUsername()
    {
        return CustomerUsername;
    }
    public String getCat_ID()
    {
        return Cat_ID;
    }
    public String getCat_Breed()
    {
        return Cat_Breed;
    }
    public String getCat_Colour() { return Cat_Colour;
    }
    public String getCat_Gender() {return Cat_Gender;}

    public String getCat_Name() { return Cat_Name;}

    public String toString()
    {
        return this.getCat_Name()+this.getCat_ID()+this.getCat_Gender()+this.getCat_Colour()+this.getCat_Breed() ;
    }

}







1 Ответ

0 голосов
/ 19 апреля 2020

моя проблема решена. ранее я поставил getActivity cmbCatlist = (Spinner) getActivity.findViewById (R.id.catlist);

Затем измените представление, чтобы оно работало !! cmbCatlist = (Spinner) view.findViewById (R.id.catlist);

...