如何获得 selected/clicked 评分栏在评分栏列表中的位置
how to get positon of the selected/clicked rating bar in a list of rating bars
如何在 recyclerview 适配器中的评级栏侦听器中的评级栏列表中获取所选评级栏的位置,如下面的代码所示?
当用户单击它时,我能够获得每个评级栏的单独评级,但我无法告诉我单击了哪个评级栏的用户,因为没有获取列表中特定评级栏位置的方法。我已将评级栏放置在适配器内,该适配器会填充回收器视图中的列表,如下面的代码所示。我正在使用 this 库作为评级栏。这是我放置监听器的适配器代码,如何获取用户在我的评级栏监听器中选择的评级栏的位置
@Override
public RateMa3Adapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
// create a new view
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.rate, viewGroup, false);
view.setOnClickListener(RateMa3.myOnClickListener);
ViewHolder viewHolder = new ViewHolder(view);
rootView = view;
ButterKnife.bind(this, view);
lowerRatingBar.setListener(ratingListener);
return viewHolder;
}
private RatingListener ratingListener = new RatingListener() {
@Override
public void onRatePicked(ProperRatingBar ratingBar) {
Snackbar.make(rootView,
String.format("Rating is %d " , ratingBar.getRating()),
Snackbar.LENGTH_SHORT).show();
Log.e("Rate", ratingBar.getRating() + " rating");
// HOW CAN I GET THE POSITION OF A RATING BAR THE USER HAS CLICKED IN HERE?? THATS MY QUESTION, SINCE I HAVE A LIST OF RATING BARS
}
};
onCreateViewHolder
方法中的唯一代码应该是:
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.rate, viewGroup, false);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
您应该在 onBindViewHolder(ViewHolder viewHolder, int position)
方法中设置 onClickListener
。在那里你可以使用第二个参数,它是 RecyclerView
中的位置
要将 onClickListener
设置为整个视图,请使用 viewHolder.itemView.setOnClickListener()
如何在 recyclerview 适配器中的评级栏侦听器中的评级栏列表中获取所选评级栏的位置,如下面的代码所示? 当用户单击它时,我能够获得每个评级栏的单独评级,但我无法告诉我单击了哪个评级栏的用户,因为没有获取列表中特定评级栏位置的方法。我已将评级栏放置在适配器内,该适配器会填充回收器视图中的列表,如下面的代码所示。我正在使用 this 库作为评级栏。这是我放置监听器的适配器代码,如何获取用户在我的评级栏监听器中选择的评级栏的位置
@Override
public RateMa3Adapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
// create a new view
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.rate, viewGroup, false);
view.setOnClickListener(RateMa3.myOnClickListener);
ViewHolder viewHolder = new ViewHolder(view);
rootView = view;
ButterKnife.bind(this, view);
lowerRatingBar.setListener(ratingListener);
return viewHolder;
}
private RatingListener ratingListener = new RatingListener() {
@Override
public void onRatePicked(ProperRatingBar ratingBar) {
Snackbar.make(rootView,
String.format("Rating is %d " , ratingBar.getRating()),
Snackbar.LENGTH_SHORT).show();
Log.e("Rate", ratingBar.getRating() + " rating");
// HOW CAN I GET THE POSITION OF A RATING BAR THE USER HAS CLICKED IN HERE?? THATS MY QUESTION, SINCE I HAVE A LIST OF RATING BARS
}
};
onCreateViewHolder
方法中的唯一代码应该是:
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.rate, viewGroup, false);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
您应该在 onBindViewHolder(ViewHolder viewHolder, int position)
方法中设置 onClickListener
。在那里你可以使用第二个参数,它是 RecyclerView
要将 onClickListener
设置为整个视图,请使用 viewHolder.itemView.setOnClickListener()