我开始使用android编程,当我尝试将数据从我的适配器发送到另一个活动时遇到了问题
。
我想展示" description
"的内容在我点击某个项目的其他活动中。
MyAdapter类:
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);
}
}
}
有人能帮助我吗?
答案 0 :(得分:0)
将Context
或Activity
实例传递到适配器类。
然后在启动新Activity
并假设实例变量为mContext
时使用这样 -
Intent intent = new Intent(mContext ,Affich.class);
intent.putExtra("description", String.valueOf((description)));
mContext.startActivity(intent);
答案 1 :(得分:0)
我认为您并不想将TextView
传递给下一个活动,而是将其显示在其中。此外,您需要将Context
传递给Intent,startActivity()
是一种活动方法,因此您需要在上下文中调用它:
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);
}
});
答案 2 :(得分:0)
要将TextView
的值传递给您的新活动,请执行以下操作:
intent.putExtra("description", description.getText().toString());
关于新活动,请使用以下方式获取说明值:
String descriptionValue = getIntent().getStringExtra("description");