我有一个从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”类的属性,但我不知道如何首先获得它。谢谢。
答案 0 :(得分:1)
您将通过使用的LayoutManager从RecyclerView获取视图。
查看以下代码:
View v = recyclerView.getLayoutManager().findViewByPosition(position);
通过此操作,您将可以在适当的位置获得View(而不是实际的数据对象)。如果有类似的使用方法,您可以从TextView
或EditText
中提取数据
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) {
}
}
}