Możesz tego dokonać za pomocą viewholder w klasie RecyclerAdapter.
//this goes in your recyclerView adapter....
/**
* View holder for workouts
*/
public static class MyViewHolder extends RecyclerView.ViewHolder {
// each data item is just a string in this case
public TextView mTitleView;
public TextView mTView1;
public View homeView;
public MyViewHolder(View itemLayoutView) {
super(itemLayoutView);
this.homeView = itemLayoutView;
this.mTitleView = (TextView) itemLayoutView.findViewById(R.id.workoutItemTitleText);
this.mTView1 = (TextView) itemLayoutView.findViewById(R.id.workoutItemWorkoutSets);
homeView.setOnClickListener(new ON)
}
}
//other code.....
@Override
public void onBindViewHolder(WorkoutViewHolder viewHolder, int position) {
viewHolder.mTView1.setText("");
viewHolder.mTitleView.setText("");
//pass the position to the view in the onclick listener
viewHolder.homeView.setId(position);
viewHolder.homeView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//this list item has been clicked, do something. maybe use an interface or something to notify your activity/fragment.
}
});
}
//the rest of your code.....
W metodzie onBindViewHolder można zaimplementować logiki animacji dla tego widoku i przekazać, że onclick do swojej działalności lub fragmentu. Po prostu utwórz niestandardowy interfejs dla adaptera recyclerview i wykonaj taką metodę, jak setMyOnItemClickListener(new MyOnItemClickListener)
. Następnie, po kliknięciu elementu, powiadom niestandardowy interfejs i wykonaj działanie za pomocą kliknięcia.
Dzięki Nathan, zagłębię się w to tak szybko, jak to możliwe. Wydaje się, że jest to mniej kłopotliwe i nadęte, więc wypróbuję to i dam ci znać krótko =) – Ted
Działa jak urok =) – Ted
@ Cieszę się, że mogę to usłyszeć! –