Android 在活动之间传递字符串数组,而不使用Intent或bundle
希望在活动之间传递字符串数组,而无需在android中使用Intent或Bundle。 我该怎么做 我试过这根绳子 在第一个活动中,我声明了一个字符串:Android 在活动之间传递字符串数组,而不使用Intent或bundle,android,arrays,Android,Arrays,希望在活动之间传递字符串数组,而无需在android中使用Intent或Bundle。 我该怎么做 我试过这根绳子 在第一个活动中,我声明了一个字符串: String str="abc"; // in activity1.java 在第二个活动中,我使用以下代码访问它: String str2=activity1.str; // in activity2.java 这个很好用。但是如何传递字符串数组呢?您可以将其设置为单独类或全局变量中的静态数组。如果您不想将其作为意图传递,可能的解决方案是
String str="abc"; // in activity1.java
在第二个活动中,我使用以下代码访问它:
String str2=activity1.str; // in activity2.java
这个很好用。但是如何传递字符串数组呢?您可以将其设置为单独类或全局变量中的静态数组。如果您不想将其作为意图传递,可能的解决方案是使用包含所需值的单例类
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("");
由于它是一个单例,类中的数据将被共享。使用字符串数组代替字符串有什么问题 你的计划: 在第一个活动中,我声明了一个字符串
String str=“abc”//在activity1.java中
在第二个活动中,我使用这段代码访问它
String str2=activity1.str;//在activity2.java中
也许你可以试试(在你的情况下):
在第一个活动中,我声明了一个字符串
String[]arrayStr={“abc”,“xyz”};//在activity1.java中
在第二个活动中,我使用这段代码访问它
String arrayStr2=activity1.arrayStr;//在activity2.java中
我得到了答案。这是我试过的一个片段 在第一个活动中,我使用公共说明符将数组声明为静态: 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
这就成功了。我必须在dataholder.setstr(“”)中传递任何内容吗?它是一个mutator函数,如果您想更改字符串pass的值,则它是一个值。如果您不想更改该值,则不需要使用该函数,因为您刚刚意识到需要一个字符串数组,并编辑代码来显示它。