Android Firebase RecyclerView получить предмет - PullRequest
0 голосов
/ 02 июня 2019

У меня есть recyclerView, который заполняется из Firebase (поэтому он использует собственный адаптер Recycler Firebase), я хочу получать информацию об объектах, отображаемых так же, как я делаю с моим Listview, что в данном случае намного проще: просто добавление addOnItemTouchListener на listView сделает это. Но у recyclerView нет этого метода, похожий на addOnItemTouchListener, и я не могу понять, как я могу получить из него информацию об элементе, так как методы не включают в себя индекс или какое-либо определение для строк.

Я пытался найти проблему, но мне не хватает понимания этого "нового" метода, или я не могу сформулировать правильный ответ для этого.

recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
            @Override
            public boolean onInterceptTouchEvent(@NonNull RecyclerView recyclerView, @NonNull MotionEvent motionEvent) {
                Partida partida = (Partida) recyclerView.getChildItemId(motionEvent.getActionIndex());

                return false;
            }

            @Override
            public void onTouchEvent(@NonNull RecyclerView recyclerView, @NonNull MotionEvent motionEvent) {

            }

            @Override
            public void onRequestDisallowInterceptTouchEvent(boolean b) {

            }
        });

Я ожидаю получить атрибуты моего класса "Juego", но я не знаю, как получить его в первую очередь. Спасибо.

Ответы [ 2 ]

1 голос
/ 03 июня 2019

Вы можете добавить View.OnClickListener в onBindViewHolder вашего адаптера:

@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
    holder.itemView.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
          }
      }
}
1 голос
/ 03 июня 2019

Вы получите представление из RecyclerView через LayoutManager, который вы использовали.

Проверьте код ниже:

View v = recyclerView.getLayoutManager().findViewByPosition(position);

С этим вы сможете получить представление в позиции (но не фактический объект данных). Вы можете извлечь данные из TextView или EditText, если есть какие-либо методы, такие как

String name = ((TextView)v.findViewById(R.id.textViewId)).getText().toString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...