获取RecyclerView中项目的文本

3

我正在开发一款Android应用程序并接近完成,但是我在recyclerView中遇到了问题。我不知道如何获取recyclerView中某个条目的文本内容(当我单击该项时)。

1个回答

7

首先,您需要创建一个侦听器,该侦听器将视图和位置作为参数。它不像listView那样直接存在。为此,您可以创建一个类,如下所示:

public class RecyclerClickListener implements RecyclerView.OnItemTouchListener {

private OnItemClickListener mListener;
    GestureDetector mGestureDetector;

public interface OnItemClickListener {
  void onItemClick(View view, int position);
}

public RecyclerClickListener(Context context, OnItemClickListener listener) {
    mListener = listener;
    mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
        @Override public boolean onSingleTapUp(MotionEvent e) {
            return true;
        }
    });
}

@Override
public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) {
    View childView = view.findChildViewUnder(e.getX(), e.getY());
    if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) {
        mListener.onItemClick(childView, view.getChildLayoutPosition(childView));
        return true;
    }
    return false;
}

@Override
public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) { }

@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {

}

}

在您的活动中:

 recyclerView.addOnItemTouchListener( // and the click is handled
            new RecyclerClickListener(getActivity(), new RecyclerClickListener.OnItemClickListener() {
                @Override public void onItemClick(View view, int position) {
                    Log.d("click item", String.valueOf(position));   
                    TextView textView = (TextView) view.findViewById(R.id.YourTextViewID);
                            Log.d("test",textView.getText().toString());                              
                    }
                }
            }));

你指的是哪个 textView? - Younes LAB
您的viewHolder中的layout_item_list中的一个。 - Chami

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接