想要在不使用Intent或Bundle的情况下在活动之间传递字符串数组。 我怎么能这样做?
我试过这个字符串。
在第一个活动中,我宣布了一个字符串:
String str="abc"; // in activity1.java
在第二个活动中,我使用这段代码访问它:
String str2=activity1.str; // in activity2.java
这很好用。但是如何传递字符串数组?
答案 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
这就是诀窍。