我有2项活动。每个扩展活动。我尝试了我在这里找到的所有方法,但没有一个在起作用。 我需要将String数组从一个活动发送到其他活动,但保留在第一个活动中。 我试试这个:
Intent intent = new Intent(ActivityFrom.this, ActivityTo.class);
intent.putExtra("string-array", ARRAY);
ActivityFrom.this.startActivity(intent);
并且重温:
Intent intent = getIntent();
String[] array = intent.getExtras().getStringArray("string-array");
有什么想法吗?
答案 0 :(得分:0)
我建议使用Singleton类,如果您希望稍后使用它,这也将使您的String数组在整个应用程序中可用。这样的事情应该让你开始:
public class StringArrayHolder {
private static StringArrayHolder instance;
private String[] mArray;
public static StringArrayHolder getInstance() {
if (instance == null) {
instance = new StringArrayHolder();
}
return instance;
}
private StringArrayHolder() {
}
public void setStringArray(String[] value) {
mArray = value;
}
public String[] getStringArray() {
return mArray;
}
}
您也可以使用putStringArrayListExtra()方法。
希望这有帮助。
答案 1 :(得分:0)
您可以使用public Intent putExtra (String name, Bundle value)
Bundle
对象包含使用String[]
的{{1}}数组。{/ p>
答案 2 :(得分:0)
这应该是你的伎俩
ActivityFrom.java:
...
// Start ActivityTo
Intent intent = new Intent(this, ActivityTo.class);
intent.getExtras().putStringArray("string-array", ARRAY);
startActivity(intent);
...
ActivityTo.java:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String[] strings = getIntent().getStringArrayExtra("string-array");
...
}
答案 3 :(得分:0)
Bundle b=new Bundle();
b.putStringArray("key", strarray);
Intent intent=new Intent(this, nextActivity.class);
intent.putExtras(b);
startActivity(intent);