2016-04-27 17 views
1

Ich arbeite in der Anwendung von Android genähert, um es zu beenden, aber ich fand das Problem in RecyclerView, und ich wusste nicht, wie man den Text eines Elements der recyclerView bekommen? (wenn ich in den Artikel klicke)Holen Sie sich den Text eines Artikels RecyclerView

+0

Code teilen. –

Antwort

2

Zuerst müssen Sie einen Listener erstellen, der als Argument die Ansicht und die Position angibt. Es existiert direkt wie für die ListView. Dafür können Sie eine Klasse wie folgt erstellen:

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) { 

} 

} 

Dann in Ihrer Aktivität:

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());        
        } 
       } 
      })); 
+0

Welche TextView meinst du? – YounYou

+0

Der in der layout_item_list Ihres viewHolder – Chami

Verwandte Themen