【发布时间】:2011-03-07 07:50:19
【问题描述】:
我是 Android 新手。我应该如何在两个类之间传递一个字符串数组?
我尝试过Intent,通过在类之间共享String数组,但我只得到一个String,其余的Strings不会显示。
我可以使用捆绑包吗?有没有更好的方法来传递字符串数组?
【问题讨论】:
标签: android
我是 Android 新手。我应该如何在两个类之间传递一个字符串数组?
我尝试过Intent,通过在类之间共享String数组,但我只得到一个String,其余的Strings不会显示。
我可以使用捆绑包吗?有没有更好的方法来传递字符串数组?
【问题讨论】:
标签: android
如果您尝试将字符串数组从一个 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");
}
我建议你在类中制作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();
【讨论】:
如果你要做的是在activity之间来回传递数据,即从Activity A,启动Activity B并传递字符串数组,你可以在创建intent时使用putStringArrayListExtra方法:
所以在活动 A 中,您会执行以下操作:
Intent intentB = new Intent(this, ActivityB.class);
intentB.putStringArrayListExtra("name", <the array>);
this.startActivity(intentB)
【讨论】:
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);
【讨论】: