セクションの名前を取得しようとすると、そのセクションのアイテムのいずれかをタップします。セクションと私は、セクションの名前(かつて私は、任意の上でタップしないを見たい私の知識のための項目(複数可)今セクションアイテム:アイテムのタップでセクション名を取得
:私は私のUIデータを2つの部分に分かれてthisチュートリアル、以下のい
たとえば、アイテムの)
、私は、セクションのそれぞれは、だから、どのように私はそれを知っていますか5つの項目自体が含まれていると私は、セクションの第二
の4項目にタップされていると仮定しましょう5つのセクションを、持っています、あなたが見ることができるように、私はタップされたアイテムの名前を取得していますが、タップでもセクションの名前を取得したい(私はちょうどタップアイテム)?あなたのRecyclerViewDataAdapter
で今
public class SectionListDataAdapter extends RecyclerView.Adapter<SectionListDataAdapter.SingleItemRowHolder> {
private ArrayList<SingleItemModel> itemsList;
private Context mContext;
private String mSectionName;
public SectionListDataAdapter(Context context, String sectionName, ArrayList<SingleItemModel> itemsList) {
mSectionName = sectionName;
this.itemsList = itemsList;
this.mContext = context;
}
@Override
public SingleItemRowHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_single_card, null);
SingleItemRowHolder mh = new SingleItemRowHolder(v);
return mh;
}
@Override
public void onBindViewHolder(SingleItemRowHolder holder, int i) {
SingleItemModel singleItem = itemsList.get(i);
holder.tvTitle.setText(singleItem.getName());
/* Glide.with(mContext)
.load(feedItem.getImageURL())
.diskCacheStrategy(DiskCacheStrategy.ALL)
.centerCrop()
.error(R.drawable.bg)
.into(feedListRowHolder.thumbView);*/
}
@Override
public int getItemCount() {
return (null != itemsList ? itemsList.size() : 0);
}
public class SingleItemRowHolder extends RecyclerView.ViewHolder {
protected TextView tvTitle;
protected ImageView itemImage;
public SingleItemRowHolder(View view) {
super(view);
this.tvTitle = (TextView) view.findViewById(R.id.tvTitle);
this.itemImage = (ImageView) view.findViewById(R.id.itemImage);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), mSectionName +" : "+ tvTitle.getText(), Toast.LENGTH_SHORT).show();
}
});
}
}
}
単にあなたの内側SectionListDataAdapter
を初期化する1行を変更します。
public class SingleItemRowHolder extends RecyclerView.ViewHolder {
....
public SingleItemRowHolder(View view) {
super(view);
.....
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), tvTitle.getText(), Toast.LENGTH_SHORT).show();
}
});
}