不使用Intent或bundle在活动之间传递字符串数组

时间:2015-10-29 14:54:54

标签: android arrays

想要在不使用Intent或Bundle的情况下在活动之间传递字符串数组。 我怎么能这样做?

我试过这个字符串。

在第一个活动中,我宣布了一个字符串:

String str="abc"; // in activity1.java

在第二个活动中,我使用这段代码访问它:

String str2=activity1.str; // in activity2.java

这很好用。但是如何传递字符串数组?

4 个答案:

答案 0 :(得分:2)

What is the problem to use array of string instead String?

Your scheme:

in the first activity i have declared a string

String str="abc"; // in activity1.java

and in the second activity am accessing it using this piece of code

String str2=activity1.str; // in activity2.java

Maybe just try it (in your case):

in the first activity i have declared a string

String[] arrayStr = {"abc", "xyz"}; // in activity1.java

and in the second activity am accessing it using this piece of code

String arrayStr2 = activity1.arrayStr; // in activity2.java

答案 1 :(得分:0)

您可以将其作为单独的类或全局变量中的静态数组。

答案 2 :(得分:0)

如果您不想将其作为意图传递,可能的解决方案将是包含您需要的值的单例类。

public class MyDataHolder
{
    private static MyDataHolder instance;
    String str;
    String[] myStringArray;
    public static MyDataHolder getInstance()
    {
        if (instance == null)
        {
            instance = new MyDataHolder();
        }
        return instance;

    }

 private MyDataHolder()
{
  myStringArray=new String[yourStringSize];
}

 public String getStringArray()
    {
        return myStringArray;
    }

    public void setStringArray(String[] str)
    {
        this.myStringArray= myStringArray;
    }

public String getStr()
    {
        return str;
    }

    public void setStr(String str)
    {
        this.str= str;
    }

}

然后在你的行为中声明实例变量,如此

MyDataHolder dataHolder = MyDataHolder.getInstance();
dataHolder.getStr();
dataHolder.setStr("");

由于它是Singleton,因此将共享该类中的数据。

答案 3 :(得分:0)

我得到了答案。这是我试过的一个片段。

在第一个活动中,我使用公共说明符将数组声明为静态:

Activity1.java

public static String[] activity1_arr={'abc','efg','hij'}; // sample data. in my application am fetching it from database.

在第二个活动中,我使用带有数组

的活动名称访问它

Activity2.java

String[] activity2_arr; // declaring array
activity_arr=Activity1.activity1_arr // accessing the array with class

这就是诀窍。