Java 如何将第二个活动中的RecyclerView项传递给Android中的前一个活动?

Java 如何将第二个活动中的RecyclerView项传递给Android中的前一个活动?,java,android,Java,Android,我有两项活动——A和B A-详细信息活动更新详细信息的地方 B-一种搜索活动或片段,其中用户从项目列表中选择一个项目,所选项目反映在活动A中 有人能提出一种实现这一功能的有效方法吗?onActivityResult如何 检查这个onActivityResult如何 选中此选项如果您使用B作为片段,则可以使用接口在片段和活动之间进行通信。片段中的任何更改都可以反映在父活动中。如果您使用B作为片段,则可以使用接口在片段和活动之间进行通信。片段中的任何更改可以反映在父活动中。您可以使用intent将数

我有两项活动——A和B

A-
详细信息活动
更新详细信息的地方

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(“键”、“值”);
星触觉(一)
}
}));

有两种方法可以做到这一点

  • 如果您只需要将数据从A传递到B活动 向前移动,然后可以使用对象并通过 如果你回到A,它会伴随着你的意图和之后 同样,在onResume方法中,您可以再次调用数据源以进行恢复 数据

  • 您可以启动tractivityforresult();在活动A中,这将开始 B活动,从B返回后,它将自动 在ActivityResult()上触发


  • 有两种方法可以做到这一点

  • 如果您只需要将数据从A传递到B活动 向前移动,然后可以使用对象并通过 如果你回到A,它会伴随着你的意图和之后 同样,在onResume方法中,您可以再次调用数据源以进行恢复 数据

  • 您可以启动tractivityforresult();在活动A中,这将开始 B活动,从B返回后,它将自动 在ActivityResult()上触发


  • 在启动Actvity B时使用startActivityForResult()并将结果返回Actvity A。在启动Actvity B时使用startActivityForResult()并将结果返回Actvity A。在启动Actvity B时使用startActivityForResult()并将结果返回Actvity A。