Поиск в Firebase Null с помощью прослушивателя onClick

Я предпочитаю, чтобы прослушиватели событий были развернуты модульной функцией, а не сценарием прослушивателя событий уровня document. Итак, мне нравится ниже. Обратите внимание: вы не можете переадресовать элемент с одним и тем же прослушивателем событий, поэтому не беспокойтесь о прикреплении слушателя более одного раза - только один палец.

var iterations = 4;
var button;
var body = document.querySelector("body");

for (var i = 0; i < iterations; i++) {
    button = document.createElement("button");
    button.classList.add("my-button");
    button.appendChild(document.createTextNode(i));
    button.addEventListener("click", myButtonWasClicked);
    body.appendChild(button);
}

function myButtonWasClicked(e) {
    console.log(e.target); //access to this specific button
}

0
задан Chandrani Chatterjee 28 March 2019 в 08:50
поделиться

1 ответ

Чтобы иметь возможность инициализировать адаптер, вам необходимо иметь действительный запрос. И чтобы создать запрос, вам нужно иметь searchData. Это означает, что инициализация firebaseRecyclerAdapter должна происходить внутри onClick.

imgB.setOnClickListener(new View.OnClickListener(){

    @Override
    public void onClick(View view)
    {
       query = mProfileDatabase.orderByChild("djprofile")
                .startAt(searchData)
                .endAt(searchData + "\uf8ff");

        FirebaseRecyclerOptions<DjProfile> firebaseRecyclerOptions = new FirebaseRecyclerOptions.Builder<DjProfile>()
                .setQuery(query, DjProfile.class)
                .build();
        firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<DjProfile, ResultsViewHolder>(firebaseRecyclerOptions)
        {

            @NonNull
            @Override
            public ResultsViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
                View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.searchitem_list, viewGroup, false);

                return new ResultsViewHolder(view);
            }

            @Override
            protected void onBindViewHolder(@NonNull ResultsViewHolder holder, int position, @NonNull DjProfile model) {
                holder.setDjProfile(model);
            }
        };
        recyclerView.setAdapter(firebaseRecyclerAdapter);
    }
});
0
ответ дан Frank van Puffelen 28 March 2019 в 08:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: