использовать такой интерфейс
public interface OnRecordEventListener {
void onRatingBarChange(Record item,float value);
}
вы создаете прослушиватель передачи ViewHolder в конструктор, подобный этому.
public ViewHolder(View itemView, OnRecordEventListener listener) {
super(itemView);
textViewTitle = (TextView) itemView.findViewById(R.id.text_view_title);
ratingBar = (RatingBar) itemView.findViewById(R.id.rating_bar_rating);
bar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
if (fromUser) {
listener.onRatingBarChange(mRecords.get(getLayoutPosition()), rating);
}
}
});
}
И обновить в onCreateViewHolder
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recyclerview_item, viewGroup, false);
return new ViewHolder(v,mClickListener);
}
вы также можете использовать интерфейс для других событий, вам просто нужно добавить метод в интерфейс, реализовать его и связать в конструкторе ViewHolder.
ОБНОВЛЕНИЕ Учтите, что вы используете RecyclerView в Activity
public class RecyclerActivity extends Activity implements OnRecordEventListener {
// all institutionalization, callbacks, hook methods
@Override
public void onCreate() {
// Initialization .....
mRecyclerView.setLayoutManager(...);
// Passing this because this class implements interface
mRecyclerView.setAdapter(new RecyclerViewAdapter(mRecord,this));
}
@Override
void onRatingBarChange(Record item,float value) {
// do Something
}
}
person
Dinesh
schedule
19.04.2016