Как извлечь данные из списка моделей на основе позиции индекса и сохранить в текстовом представлении - PullRequest
0 голосов
/ 04 апреля 2020

Я новичок в Firebase

Я пытаюсь получить определенные данные c из Firebase. У меня есть узел университетов, и у этого узла есть много уникальных идентификаторов как узлов, в которых содержится так много данных. Я хочу получить имя из каждого узла.

Please have a loot at this.

И я хочу сохранить все эти имена в списке, используя OnChildEventListener () ...

List<University> universityList = new ArrayList<>();myRef=FirebaseDatabase.getInstance().getReference().child("universities").child(userid);
myRef.addChildEventListener(new ChildEventListener() { 
    @Override public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
        University university = dataSnapshot.getValue(University.class); 
        universityList.add(university); 
        Log.i(TAG,"add university name = " + university.name); 
    } 
}

С помощью приведенного выше кода я могу сохранить все имена из списка баз данных в список.

Теперь я хочу получить это имя из списка на основе позиции индекса и сохранить его в текстовом представлении. Это была моя проблема.

1 Ответ

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

Вы можете создать простой Адаптер и просто передать полученный список.

И получить доступ к позиции элемента в onBindViewHolder()

, затем вы можете установить TextView



public class UniversityAdapter extends RecyclerView.Adapter<UniversityAdapter.MyViewHolder> {

    private List<University> universityList;

    public class MyViewHolder extends RecyclerView.ViewHolder {
        public name;

        public MyViewHolder(View view) {
            super(view);
            name = (TextView) view.findViewById(R.id.name);
        }
    }


    public MoviesAdapter(List<University> universityList) {
        this.universityList = universityList;
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.university_list_item, parent, false);

        return new MyViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {
        University university = universityList.get(position);
        holder.name.setText(university.getName());

    }

    @Override
    public int getItemCount() {
        return universityList.size();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...