【问题标题】:How to Pass Array to another activity?如何将数组传递给另一个活动?
【发布时间】:2011-11-07 15:05:26
【问题描述】:

我知道我们可以使用 putExtra()getExtra 方法将任何对象及其值传递给另一个活动。 但现在我想知道是否可以将数组传递给另一个Activity? 或者,如果是,那么让我知道如何将数组传递给另一个 Activity ? 谢谢。

【问题讨论】:

    标签: android android-layout android-emulator android-widget


    【解决方案1】:

    首先,你应该知道两个问题:

    • 为了通过意图发送某事,它必须是可包裹的
    • 即使对象是可调节的,您可以通过意图发送的数据量也是有限的。

    一种可能的方法是拥有一个静态结构,您可以在其中存储您的数据,并且只传递该数据的索引。使用此索引,新活动可以访问这些数据。希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      Bundle 类有很多 putXxxxArray() 方法。

      1. putBooleanArray
      2. putByteArray
      3. putCharArray
      4. putCharSequenceArray
      5. putDoubleArray
      6. putFloatArray
      7. putIntArray
      8. putLongArray
      9. putParcelableArray
      10. putShortArray
      11. putStringArray

      如果您希望传递某种Object,您应该查看Parcelable 接口,因为您的对象需要实现它。

      【讨论】:

        【解决方案3】:
        Bundle b = new Bundle();
        b.putStringArray(key, new String[]{value1, value2});
        Intent i=new Intent(context, Class);
        i.putExtras(b);
        

        为了接收

        Bundle b = this.getIntent().getExtras();
        String[] array=b.getStringArray(key);
        

        【讨论】:

        • 不错不错。但是如果我想传递没有价值的数组怎么办。我的意思是如果我已经将值存储到数组中,现在如果我想通过数组的名称将它传递给另一个活动那么?
        【解决方案4】:

        请参阅this 问题。基本上:

        Bundle b=new Bundle();
        b.putStringArray(key, new String[]{value1, value2});
        Intent i=new Intent(context, Class);
        i.putExtras(b);
        

        检索:

        Bundle b=this.getIntent().getExtras();
        String[] array=b.getStringArray(key);
        

        【讨论】:

          【解决方案5】:
           Intent intent = new Intent();
           Bundle bundle = new Bundle();
           bundle.putSerializable("bundle",Parceble Object);
           intent.putExtra(String key, String[] values);
           intent.putExtras(bundle);
          

          对于不同类型的数组看here

          谢谢

          【讨论】:

          • 好的。我是否还必须使用数组发送值?获取数据只能取名字吗?
          • 在这里,在传递数组的过程中,您会获得静态值。但就我而言,我不知道数组中有多少个值。意味着它可以根据活动调用进行更改。那么如何定义该数组的范围和值???
          • 如果您在运行时不知道数组的大小,那么您可以使用 ArrayList 之类的 public void putStringArrayList (String key, ArrayList value)
          • 那么我会将数组 lise 从一个活动传递到另一个活动吗?
          • 如果我创建 bean 类并为此使用 getter setter 方法,那么这是一个好主意吗????
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-03-11
          • 1970-01-01
          相关资源
          最近更新 更多