Android Firebase RecyclerView获取项目

时间:2019-06-02 20:54:15

标签: android firebase android-recyclerview

我有一个从Firebase填充的recyclerView(因此它使用Firebase自己的Recycler适配器),我想获取有关显示的对象的信息,就像使用Listview一样,在这种情况下,这要简单得多:只需添加listView上的addOnItemTouchListener将执行此操作。但是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 个答案:

答案 0 :(得分:1)

您将通过使用的LayoutManager从RecyclerView获取视图。

查看以下代码:

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

通过此操作,您将可以在适当的位置获得View(而不是实际的数据对象)。如果有类似的使用方法,您可以从TextViewEditText中提取数据

String name = ((TextView)v.findViewById(R.id.textViewId)).getText().toString();

答案 1 :(得分:1)

您可以在适配器的onBindViewHolder中添加View.OnClickListener:

@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
    holder.itemView.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
          }
      }
}