使用 onClick 根据 Recycler 视图的位置打开详细信息
using onClick to open details depending on the position of Recycler view
我想在使用位置单击项目并在 activity 中设置数据时打开更多详细信息。
您可以在 Java 或 Kotlin 中写下您的建议 :)
在适配器中创建构造函数 class :
public DataAdapter(List<Pojo> dataList, OnItemClickListener listener) {
this.dataList = dataList;
this.listener = listener;
}
创建 OnBindViewHolder()
方法并获取位置:
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
final Pojo movie = dataList.get(position);
holder.Showid.setText(movie.getCatagory_id());
holder.fname.setText(movie.getCatagory_name());
holder.thumbNail.setImageUrl(movie.getCatagory_thumbnailUrl(), imageLoader);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
listener.onItemClick(movie.getSubCatagoryArrayList());
}
});
}
在 MainActivity.class
界面上创建:
public interface OnItemClickListener {
void onItemClick(ArrayList<Pojo2> item);
}
首先recyclerView的OnClick方法获取Click item的位置
喜欢这个方法
int position=getAdapterPosition();
比获取项目的位置(如 modelArrayList.get(getAdapterPosition());
)
然后将 id 发送到下一个 activity 和 id 以获取数据库中的数据并在下一个 activity
中设置所有详细信息
最终代码
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position=getAdapterPosition();
ModelClass model = modelArrayList.get(getAdapterPosition());
Long id = model.getId();
Intent i = new Intent(v.getContext(), NextActivity.class);
i.putExtra("id",id);
v.getContext().startActivity(i);
}
});
和 NextActivity 代码
Long id = getActivity().getIntent().getExtras().getLong("id", 0);
我想在使用位置单击项目并在 activity 中设置数据时打开更多详细信息。
您可以在 Java 或 Kotlin 中写下您的建议 :)
在适配器中创建构造函数 class :
public DataAdapter(List<Pojo> dataList, OnItemClickListener listener) {
this.dataList = dataList;
this.listener = listener;
}
创建 OnBindViewHolder()
方法并获取位置:
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
final Pojo movie = dataList.get(position);
holder.Showid.setText(movie.getCatagory_id());
holder.fname.setText(movie.getCatagory_name());
holder.thumbNail.setImageUrl(movie.getCatagory_thumbnailUrl(), imageLoader);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
listener.onItemClick(movie.getSubCatagoryArrayList());
}
});
}
在 MainActivity.class
界面上创建:
public interface OnItemClickListener {
void onItemClick(ArrayList<Pojo2> item);
}
首先recyclerView的OnClick方法获取Click item的位置 喜欢这个方法
int position=getAdapterPosition();
比获取项目的位置(如 modelArrayList.get(getAdapterPosition());
)
然后将 id 发送到下一个 activity 和 id 以获取数据库中的数据并在下一个 activity
中设置所有详细信息最终代码
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position=getAdapterPosition();
ModelClass model = modelArrayList.get(getAdapterPosition());
Long id = model.getId();
Intent i = new Intent(v.getContext(), NextActivity.class);
i.putExtra("id",id);
v.getContext().startActivity(i);
}
});
和 NextActivity 代码
Long id = getActivity().getIntent().getExtras().getLong("id", 0);