【问题标题】:Passing String array between two class in android application在android应用程序中的两个类之间传递字符串数组
【发布时间】:2011-03-07 07:50:19
【问题描述】:

我是 Android 新手。我应该如何在两个类之间传递一个字符串数组?

我尝试过Intent,通过在类之间共享String数组,但我只得到一个String,其余的Strings不会显示。

我可以使用捆绑包吗?有没有更好的方法来传递字符串数组?

【问题讨论】:

标签: android


【解决方案1】:

如果您尝试将字符串数组从一个 Activity 发送到另一个 Activity,这可以在 Intent 中完成。

在A类中:

Intent intent = new Intent(this, ClassB);
String[] myStrings = new String[] {"test", "test2"};
intent.putExtra("strings", myStrings);
startActivity(intent);

在 B 类中:

public void onCreate() {
  Intent intent = getIntent();
  String[] myStrings = intent.getStringArrayExtra("strings");
}
【解决方案2】:

我建议你在类中制作set_array函数的get_array,很简单希望你已经知道了。

//Right in A... Class

String array[]=new String[5];
public void set_array(String arg[])
{
    array=arg;
}

public String[] get_array()
{
    return array;
}

//Right in B.. class for geting a string array

A mAObject=new A();
String classA_array=mAObject.get_array();

【讨论】:

    【解决方案3】:

    如果你要做的是在activity之间来回传递数据,即从Activity A,启动Activity B并传递字符串数组,你可以在创建intent时使用putStringArrayListExtra方法:

    http://developer.android.com/reference/android/content/Intent.html#putStringArrayListExtra%28java.lang.String,%20java.util.ArrayList%3Cjava.lang.String%3E%29

    所以在活动 A 中,您会执行以下操作:

    Intent intentB = new Intent(this, ActivityB.class);
    intentB.putStringArrayListExtra("name", <the array>);
    this.startActivity(intentB)
    

    【讨论】:

      【解决方案4】:

      Intent 可以在活动之间发送可序列化的数据。 如果你想发送一个可序列化的对象,请跟在后面:

      class MyObject implements Serializable{
          // ...
      }
      
      Intent intent = new Intent();
      // myObject needs to be serializable
      MyObject myObject = new MyObject();
      intent.putExtra("extra", myObject);
      startActivity(intent);
      

      ArrayList 是可序列化的,所以可以直接通过 Intent 发送。

      Intent intent = new Intent();
      ArrayList<String> arr = new ArrayList<>;
      intent.putExtra("arr", arr);
      startActivity(intent);
      

      【讨论】:

        猜你喜欢
        • 2011-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多