如何将数据从片段返回到活动?

穆罕默德·托菲

我很难将数据从片段返回到活动。

我有活动A:是添加产品的主要活动,当用户单击文本视图(selectCategory)时,该活动向用户活动B显示内容片段Bb(所有类别的类别)的用户活动,当用户单击某些类别时,该应用程序将显示具有片段Cc(子类别)的用户活动C。

这是我的问题:当用户单击此子类别中的某些内容时,我需要片段Cc中的内容以将数据返回给活动A,然后向用户显示。

一个电话-> B

categoryTextView.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
    Intent i= new Intent(A.this,B.class);
    i.putExtra("fragmenttype","CategoryFragment");
    startActivityForResult(i,10);
  }
}); 

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (requestCode == 10) {
    if (resultCode == RESULT_OK) {
      titleProduct.setText(data.getStringExtra("nodecategory"));
    }
  }
}

Cc片段返回数据A,但是什么也没发生(我需要从代码转到活动A来捕获数据onActivityResult):

@Override
public void onClick(TreeNode node, Object value) {
  Intent i = new Intent();
  i.putExtra("nodecategory","hi");
  getActivity().setResult(Activity.RESULT_OK, i);
  getActivity().finish();
}
耶稣爱你

我倾向于严重依赖EventBus处理像您这样的情况。使用EventBus使我们的生活更简单。我们不需要在这里和那里的界面上弄乱我们的代码。

A ---> B

首先,A将以以下方式启动B:

Intent i= new Intent(A.this, B.class);
i.putExtra("fragmenttype","CategoryFragment");
startActivity((i); // No need using startActivityForResult, 
                   // instead receive it from Event generated by B.class.

然后在B中,每当A需要捕获某些东西时,发送Event:

EventBus.getDefault().post(new MyEvent("passed_data"));
// You can finish B activity if its job finished.
finish();

MyEvent类类似:

public class MyEvent {
  private String data;

  public MyEvent(String data) {
    this.data = data;
  }
  public String getData() {
    return data;
  }
}

在A中,接收事件

@Subscribe
public void onEventMessage(MyEvent event) {
  // process event here
  mTextView.setText(event.getData);
}

对于C-> A

考虑我们有展示C活动。每当我们想要通知A基于C活动需要做的事情(我们要做的事情)时,我们只需要使用数据触发Event:

EventBus.getDefault().post(new DataFromCEvent("your_c_data"));

DataFromCEvent类似:

public class DataFromCEvent {
  private String data;

  public DataFromCEvent(String data) {
    this.data = data;
  }
  public String getData() {
    return data;
  }
}

在A中,您可以通过添加以下内容来接收它:

@Subscribe
public void onEventMessage(DataFromCEvent event) {
  // process event here
  mTextView.setText(event.getData);
}

这也适用于片段。我们只需要为其他活动中需要的某些更改触发一个事件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将数据从片段返回到活动?

来自分类Dev

如何将数据从对话框片段返回到活动适配器?

来自分类Dev

如何知道何时从片段返回到活动

来自分类Dev

如何将SeekBar值返回到先前的活动?

来自分类Dev

如何将对话框片段值从对话框返回到主活动?

来自分类Dev

如何将数据从活动发送到片段

来自分类Dev

如何将数据从片段传递到活动?

来自分类Dev

如何将多个数据从片段传递到活动

来自分类Dev

如何将数据从活动发送回片段

来自分类Dev

如何将数据从片段发送到活动?

来自分类Dev

从片段返回到活动onBackPressed

来自分类Dev

ajax调用如何将数据返回到变量?

来自分类Dev

如何将数据从MatBottomSheet返回到其父组件?

来自分类Dev

如何将索引返回到数据框作为列?

来自分类Dev

fetchMore如何将数据返回到组件?

来自分类Dev

如何将axios数据返回到供稿视图?

来自分类Dev

如何将JSON数据从python返回到javascript?

来自分类Dev

如何将数据从 PHP 返回到 ajax 函数

来自分类Dev

如何从片段回到先前的活动

来自分类Dev

如何将字符串从AsyncTask返回到另一个活动

来自分类Dev

如何将变量从 AsyncTask 返回到 Android 中的 Google Map 活动

来自分类Dev

如何将活动更改为片段

来自分类Dev

如何将活动创建为片段?

来自分类Dev

如何将活动更改为片段

来自分类Dev

如何将活动转换为片段?

来自分类Dev

如何将值返回到数组

来自分类Dev

如何将数据返回给kotlin的呼叫活动?

来自分类Dev

使用意图将数据结果返回到父活动

来自分类Dev

将 DialogFragment 中的数据返回到调用活动