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);
}
}
}
有人可以帮助我吗?
将 Context
或 Activity
实例传递到您的适配器 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");
我开始 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);
}
}
}
有人可以帮助我吗?
将 Context
或 Activity
实例传递到您的适配器 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");