如何根据您从回收站视图列表中单击的某个项目打开新活动?
例如,如果我点击列表1,那么它将转到活动1;如果我点击列表2,它将转到活动2。
现在,每次点击列表中的某个项目时,它都会转到相同的活动。
这是我的代码:
@Override
protected void onStart() {
super.onStart();
FirebaseRecyclerAdapter<Model, ViewHolder> firebaseRecyclerAdapter =
new FirebaseRecyclerAdapter<Model, ViewHolder>(
Model.class,
R.layout.row,
ViewHolder.class,
mDbRef
) {
@Override
protected void populateViewHolder(ViewHolder viewHolder, Model model, int position) {
viewHolder.setDetails(getApplicationContext(), model.getTitle(), model.getDescription(), model.getImage());
viewHolder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(view.getContext(), Activity2.class));
答案 0 :(得分:3)
在onClickListener中执行类似的操作:
public void onClick(View view) {
int pos = getAdapterPosition());
if (pos == 1)
startActivity(new Intent(view.getContext(), Activity1.class));
if (pos == 2)
startActivity(new Intent(view.getContext(), Activity2.class));
}
答案 1 :(得分:1)
IMO,执行此操作的最佳方法是让viewholder实例提供支持它的任何数据。支持它的数据在适配器的onBindViewHolder()方法中设置。
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
final View view = LayoutInflater.from(mContext)
.inflate(R.layout.li_filter_item, parent, false);
final MyViewHolder viewHolder = new MyViewHolder(view);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (myRecyclerViewListener != null) {
myRecyclerViewListener.onClick(viewHolder.getData);
}
}
});
return viewHolder;
}