Я создал RecyclerView с CardView, содержащий текст интервала времени 15 минут, в зависимости от того, что мне дает мой сервер, например (0:00, 0:15, 0 : 30, ... 23:30, 23:45). Теперь я хочу сделать так, чтобы, если пользователь вводит «11:00» в предыдущую операцию, я получу позицию карты, содержащей «11:00» в этом действии. Теперь я могу получить позицию, используя getAdapterPosition(), но это только в том случае, если я прокрутил страницу или через карту, содержащую «11:00». Позиция не известна, если я не достиг конкретной карты.Получить позицию конкретного CardView в RecyclerView (без щелчка, прокрутки) Android
Мой CardAdapter:
public class SuggestTimeCardAdapter extends RecyclerView.Adapter<SuggestTimeCardAdapter.ViewHolder> {
private Context context;
List<SuggestTimeList> suggestTimeLists;
Integer selected_position = -1;
public SuggestTimeCardAdapter(List<SuggestTimeList> suggestTimeLists, Context context){
super();
this.suggestTimeLists = suggestTimeLists;
this.context = context;
}
@Override
public SuggestTimeCardAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.suggest_time_card, parent, false);
SuggestTimeCardAdapter.ViewHolder viewHolder = new SuggestTimeCardAdapter.ViewHolder(v);
return viewHolder;
}
@Override
public void onBindViewHolder(final SuggestTimeCardAdapter.ViewHolder holder, final int position) {
final SuggestTimeList suggestTimeList = suggestTimeLists.get(position);
holder.tvSuggestTime.setText(suggestTimeList.getSuggestTime());
if(holder.tvSuggestTime.getText().equals("11:00")){
//position at 11 is holder.getAdapterPosition()
}
}
@Override
public int getItemCount() {
return suggestTimeLists.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
public TextView tvSuggestTime;
public CardView suggest_time_card_view;
public ViewHolder(View itemView) {
super(itemView);
tvSuggestTime = (TextView) itemView.findViewById(R.id.tvSuggestTime);
suggest_time_card_view = (CardView) itemView.findViewById(R.id.suggest_time_card_view);
}
}
}
Спасибо, удивительное решение! – JerryKo