Java 如何将第二个活动中的RecyclerView项传递给Android中的前一个活动?
我有两项活动——A和B A-Java 如何将第二个活动中的RecyclerView项传递给Android中的前一个活动?,java,android,Java,Android,我有两项活动——A和B A-详细信息活动更新详细信息的地方 B-一种搜索活动或片段,其中用户从项目列表中选择一个项目,所选项目反映在活动A中 有人能提出一种实现这一功能的有效方法吗?onActivityResult如何 检查这个onActivityResult如何 选中此选项如果您使用B作为片段,则可以使用接口在片段和活动之间进行通信。片段中的任何更改都可以反映在父活动中。如果您使用B作为片段,则可以使用接口在片段和活动之间进行通信。片段中的任何更改可以反映在父活动中。您可以使用intent将数
详细信息活动
更新详细信息的地方
B-一种搜索活动
或片段
,其中用户从项目列表中选择一个项目,所选项目反映在活动A中
有人能提出一种实现这一功能的有效方法吗?onActivityResult如何
检查这个onActivityResult如何
选中此选项如果您使用B作为片段,则可以使用接口在片段和活动之间进行通信。片段中的任何更改都可以反映在父活动中。如果您使用B作为片段,则可以使用接口在片段和活动之间进行通信。片段中的任何更改可以反映在父活动中。您可以使用intent将数据从一个活动传递到另一个活动。当您调用一个意图在一个活动中导航到另一个活动时,只需将数据放在bundle或extra中。像这样
Intent asd = new Intent(getApplicationContext, ActivityA.class);
asd.putExtra(strName, STRING_I_NEED);
startActitvity(asd);
要在活动a
中获取数据
Bundle extras = getIntent().getExtras();
if(extras == null) {
newString= null;
} else {
newString= extras.getString("STRING_I_NEED");
}
您可以使用intent将数据从一个活动传递到另一个活动。当您调用一个意图在一个活动中导航到另一个活动时,只需将数据放在bundle或extra中。像这样
Intent asd = new Intent(getApplicationContext, ActivityA.class);
asd.putExtra(strName, STRING_I_NEED);
startActitvity(asd);
要在活动a
中获取数据
Bundle extras = getIntent().getExtras();
if(extras == null) {
newString= null;
} else {
newString= extras.getString("STRING_I_NEED");
}
以上代码在您的适配器中
private final List<ContentItem> items;
private final OnItemClickListener listener;
public ContentAdapter(List<ContentItem> items, OnItemClickListener listener) {
this.items = items;
this.listener = listener;
}
@Override public void onBindViewHolder(ViewHolder holder, int position) {
holder.bind(items.get(position), listener);
}
public void bind(final ContentItem item, final OnItemClickListener listener) {
...
itemView.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
listener.onItemClick(item);
}
});
}
// in your Activity
recycler.setAdapter(new ContentAdapter(items, new ContentAdapter.OnItemClickListener() {
@Override public void onItemClick(ContentItem item) {
Intent i = new Intent();
i.putExtra("key","value");
startActivity(i)
}
}));
私人最终清单项目;
私人终场监听者;
公共ContentAdapter(列表项、侦听器){
这个项目=项目;
this.listener=listener;
}
@覆盖BindViewHolder上的公共无效(ViewHolder,int位置){
holder.bind(items.get(position)、listener);
}
公共void绑定(最终ContentItem项,最终侦听器){
...
itemView.setOnClickListener(新视图.OnClickListener(){
@覆盖公共void onClick(视图v){
listener.onItemClick(项);
}
});
}
//在你的活动中
recycler.setAdapter(新ContentAdapter(items,新ContentAdapter.OnItemClickListener()){
@重写公共void onnimclick(ContentItem){
意图i=新意图();
i、 putExtra(“键”、“值”);
星触觉(一)
}
}));
以上代码在您的适配器中
private final List<ContentItem> items;
private final OnItemClickListener listener;
public ContentAdapter(List<ContentItem> items, OnItemClickListener listener) {
this.items = items;
this.listener = listener;
}
@Override public void onBindViewHolder(ViewHolder holder, int position) {
holder.bind(items.get(position), listener);
}
public void bind(final ContentItem item, final OnItemClickListener listener) {
...
itemView.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
listener.onItemClick(item);
}
});
}
// in your Activity
recycler.setAdapter(new ContentAdapter(items, new ContentAdapter.OnItemClickListener() {
@Override public void onItemClick(ContentItem item) {
Intent i = new Intent();
i.putExtra("key","value");
startActivity(i)
}
}));
私人最终清单项目;
私人终场监听者;
公共ContentAdapter(列表项、侦听器){
这个项目=项目;
this.listener=listener;
}
@覆盖BindViewHolder上的公共无效(ViewHolder,int位置){
holder.bind(items.get(position)、listener);
}
公共void绑定(最终ContentItem项,最终侦听器){
...
itemView.setOnClickListener(新视图.OnClickListener(){
@覆盖公共void onClick(视图v){
listener.onItemClick(项);
}
});
}
//在你的活动中
recycler.setAdapter(新ContentAdapter(items,新ContentAdapter.OnItemClickListener()){
@重写公共void onnimclick(ContentItem){
意图i=新意图();
i、 putExtra(“键”、“值”);
星触觉(一)
}
}));
有两种方法可以做到这一点
有两种方法可以做到这一点
在启动Actvity B时使用startActivityForResult()并将结果返回Actvity A。在启动Actvity B时使用startActivityForResult()并将结果返回Actvity A。在启动Actvity B时使用startActivityForResult()并将结果返回Actvity A。