RecyclerView 中的意图问题

Trouble with intent in RecyclerView

我开始 android 编程,当我尝试将数据从我的适配器发送到另一个 activity 时遇到了问题 . 我想在我的另一个activity中显示“description”的内容,当我点击一个项目时。

我的适配器class:

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

    private final List<FakeNews> list = FakeNewsList.all;

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

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        LayoutInflater inflater = LayoutInflater.from(parent.getContext());
        View view = inflater.inflate(R.layout.list_cell, parent, false);
        return new MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {
        FakeNews pair = list.get(position);
        holder.display(pair);
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {

        private final TextView name;
        private final TextView description;

        private FakeNews currentPair;

        public MyViewHolder(final View itemView) {
            super(itemView);

            name = ((TextView) itemView.findViewById(R.id.name));
            description = ((TextView) itemView.findViewById(R.id.description));

            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                    Intent intent =  new Intent(MyViewHolder.this ,Affich.class);
                    intent.putExtra("description", String.valueOf((description)));
                    startActivity(intent);



                }
            });
        }

        public void display(FakeNews pair) {
            currentPair = pair;
            name.setText(pair.title);

        }
    }

}

有人可以帮助我吗?

ContextActivity 实例传递到您的适配器 class。

然后开始新的 Activity 并假设实例变量是 mContext 像这样使用-

Intent intent =  new Intent(mContext ,Affich.class);
intent.putExtra("description", String.valueOf((description)));
mContext.startActivity(intent);

我假设您真的不想将 TextView 传递给您的下一个 activity,而是传递其中显示的内容。此外,您需要将 Context 传递给 Intent,而 startActivity() 是 activity 的方法,因此您需要在上下文中调用它:

    itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent intent =  new Intent(view.getContext() ,Affich.class);
            intent.putExtra("description", description.getText().toString());
            view.getContext().startActivity(intent);
        }
    });

要将值从 TextView 传递到新的 activity,请执行以下操作:

intent.putExtra("description", description.getText().toString());

在您的新 activity 上,使用以下方法获取描述值:

String descriptionValue = getIntent().getStringExtra("description");