gpt4 book ai didi

android - 无法从 Recyclerview 适配器的 setOnClickListener 中启动 Activity

转载 作者:太空宇宙 更新时间:2023-11-03 12:52:00 27 4
gpt4 key购买 nike

我已经使用网格布局管理器实现了一个回收器 View 来创建一个类别列表。现在基本上我已经尝试在 OnCreateViewholder 方法中的持有人中实现一个 setOnClick 监听器。运行代码时出现此错误

android.util.AndroidRuntimeException:从 Activity 上下文外部调用 startActivity() 需要 FLAG_ACTIVITY_NEW_TASK 标志。这真的是您想要的吗?

这是我的适配器代码

package com.paaltao.Adapters;

import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.paaltao.R;
import com.paaltao.activity.ProductDetailsActivity;
import com.paaltao.classes.Category;

import java.util.Collections;
import java.util.List;

/**
* Created by Arindam on 02-Feb-15.
*/
public class CategoryAdapter extends RecyclerView.Adapter<CategoryAdapter.CategoryHolder> {
private Context context;
private LayoutInflater inflater;
private View view;
List<Category> data = Collections.emptyList();

public CategoryAdapter(Context context ,List<Category> data){
this.data = data;
this.context= context;
}
@Override
public CategoryHolder onCreateViewHolder(ViewGroup parent, int viewType) {
inflater = LayoutInflater.from(parent.getContext());

view = inflater.inflate(R.layout.category_card, parent, false);


CategoryHolder holder = new CategoryHolder(view);
holder.categoryImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context,ProductDetailsActivity.class);
context.startActivity(intent);

}
});
return holder;
}

@Override
public void onBindViewHolder(CategoryHolder holder, int position) {

Category current = data.get(position);
holder.categoryName.setText(current.getCategory_name());
holder.categoryImage.setImageResource(current.getCategory_id());

}

@Override
public int getItemCount() {
return data.size();
}

class CategoryHolder extends RecyclerView.ViewHolder {
TextView categoryName;
ImageView categoryImage;

public CategoryHolder(View itemView) {
super(itemView);

categoryImage = (ImageView) itemView.findViewById(R.id.category_image);
categoryName = (TextView) itemView.findViewById(R.id.category_name);

}
}
}

最佳答案

private Context context; 中的上下文很可能不是 Activity 上下文。您需要在初始化时将您的 Activity 作为 CategoryAdapter 的第一个参数传递:CategoryAdapter adapter = new CategoryAdapter(activity, data);

关于android - 无法从 Recyclerview 适配器的 setOnClickListener 中启动 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28592039/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com