从RecyclerViewAdapter启动新的Intent

Olo*_*ing 3 android android-intent recycler-adapter android-recyclerview

我有RecyclerViewAdapter:

public class RecycleViewAdapter extends RecyclerView.Adapter<RecycleViewAdapter.MyViewHolder> {



    private List<Cards> items;
    private int itemLayout;


    Context context;

    public RecycleViewAdapter(List<Cards> items, int itemLayout) {

        this.items = items;
        this.itemLayout= itemLayout;
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

       View view=LayoutInflater.from(parent.getContext()).inflate(itemLayout,parent,false);
        return new MyViewHolder(view);
    }

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


        Cards item=items.get(position);
        holder.title.setText(item.getName());
        String cardvalue = item.getCountry();
        String cardCode = item.getCode();
        String cardCountry = item.getCountry();


    }

    @Override
    public int getItemCount() {

        return items.size();
    }
    public static class  MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{

        TextView title;
        public MyViewHolder(View itemView) {

            super(itemView);

            title= (TextView) itemView.findViewById(R.id.listText);

            title.setOnClickListener(this);
        }

        @Override
        public void onClick(View v) {


        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要启动新的Intent(OnCardsSelected.class),但我不能将此行添加到我的方法中onClick:

Intent intent = new Intent (this, OnCardSelected.class);
Run Code Online (Sandbox Code Playgroud)

我不明白我做错了什么,我只需要启动Intent并为此意图提供一些信息,我阅读了一些手册,但不理解他们的解释,所以我希望你能帮助我.谢谢

ρяσ*_*я K 13

可能尝试从onClick方法启动Activity 然后使用v.getContext()而不是this(引用onClick方法上下文)作为Intent构造函数的第一个参数:

Intent intent = new Intent (v.getContext(), OnCardSelected.class);
Run Code Online (Sandbox Code Playgroud)


Ola*_*umi 5

在 onBindViewHolder 方法中添加这行代码

Intent intent = new Intent(v.getContext(), YourClassName.class);
v.getContext().startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

你就可以走了。