【问题标题】:how to transfer data from editText to sveral activities using checkBox如何使用复选框将数据从editText传输到多个活动
【发布时间】:2014-08-24 17:11:25
【问题描述】:

我在 MainActivity.java 中有 3 个复选框小部件和一个 editText 和一个 Button。我还有 3 个活动 FirstActivity.java 、 SecondActivity.java 和 ThirdActivity.java 。问题是:如何将 editText 中的数据从 MainActivity.java 传输到任何其他活动。更具体地说...当我选中第一个框并单击按钮时,我希望将数据传输到第一个活动,当我选中第一个和第二个框时,它应该将数据传输到第一个和第二个活动...

我在这个问题上卡了一段时间,有人可以帮我吗?!

谢谢:)

【问题讨论】:

    标签: java android button android-activity checkbox


    【解决方案1】:

    这取决于您单击按钮后要执行的操作。

    您要打开与复选标记对应的活动吗? 如果是,如果有多个复选标记,您是否要在另一个活动之上打开一个活动? 如果您对上述问题的回答是肯定的,那么您应该尝试按意图传递数据。

    Intent intent = new Intent(CurrentActivity.this, FirstActivity.class);
    intent.putExtra("myData","value");
    startActivity(intent);
    

    在 FirstActivity 中,您可以通过

    Bundle bundle = getIntent().getExtras();
    if (bundle != null) {
        String value = bundle.getString("myData");
    }
    

    对于自定义对象,您可以使用 SerializableParceable

    但是,如果您的堆栈中已经有该活动,并且您只想向它们发送数据而不实际将它们放在顶部,您可以尝试Observer pattern 您可以定义一个接口,该接口将由您的三个活动实现,然后您的 ui 活动可以跟踪三个活动并根据复选标记向它们发送数据。

    【讨论】:

      【解决方案2】:

      要将数据从一个活动传输到另一个活动,你有一个额外的意图:

      Intent secondActivity = new Intent(getApplicationContext(), SecondActivity.class);
      secondActivity.putExtra("dataKeyName", "dataToBeTransfered");
      

      然后从 SecondActivity 接收这个数据使用:

      Intent inte = getIntent();
      String data = inte.getExtras().get("dataKeyName");
      

      要使用 CheckBox,您只需在 switch 语句中添加意图的初始化 希望对您有所帮助!

      【讨论】:

      • 我不想打开活动我只想将数据传输到所有三个活动(不打开它们),然后我会让用户知道他们已使用 Toast 成功传输.
      • @Tarek-Dev 那么为什么您选择他的答案作为正确答案,而这与我的答案相同?所以在这种情况下你必须使用SheredPreference
      • 我很抱歉...但他有点理解我的情况并解释了更多...不过我非常感谢您的帮助!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-03
      • 2020-12-18
      • 1970-01-01
      • 1970-01-01
      • 2012-11-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多