如何在另一个活动中使用String数组

时间:2012-03-07 14:55:29

标签: java android android-intent

我有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");

有什么想法吗?

4 个答案:

答案 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);