Как заставить работать Адаптер для Listview внутри фрагмента - PullRequest
0 голосов
/ 27 мая 2019

Я использую фрагмент со списком, чтобы показать некоторые элементы из базы данных Firebase.Но похоже, что адаптер не работает должным образом;Я проследил код, и все выглядит нормально.Кто-нибудь знает, где у меня ошибка?

Я пробовал getActivity (). GetBaseContext () и getContext () в контексте адаптера, но он также не работает

public class ListFragment extends Fragment implements View.OnClickListener{

    private RecyclerView rcv;
    private ListView lstvw;
    DatabaseReference ddbbr;

    public ListFragment() {
        // Required empty public constructor
    }


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_list, container, false);
        lstvw = v.findViewById(R.id.lstvwlistamini);
        ddbbr = FirebaseDatabase.getInstance().getReference("juegos");
        ddbbr.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                ArrayAdapter<String> adapter;
                ArrayList<String> list = new ArrayList<String>();

                for (DataSnapshot datasnapshot: dataSnapshot.getChildren()) {

                    Juego juego =  datasnapshot.getValue(Juego.class);

                    String titulo = juego.getTitulo();
                    list.add(titulo);
                    Toast toast = Toast.makeText(getContext(),list.get(0).toString(),Toast.LENGTH_LONG);
                    toast.show();

                }
                adapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,list);
                lstvw.setAdapter(adapter);

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });


        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_list, container, false);
    }

Какя сказал, что приложение не падает и интерфейс работает, но список пуст (

)

1 Ответ

0 голосов
/ 27 мая 2019

вы надуваете новое представление, когда вы возвращаете представление фрагмента; в последней строке функции onCreateView возвращает представление, которое было завышено ранее, замените:

return inflater.inflate(R.layout.fragment_list, container, false);

с:

return v;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...