【问题标题】:Passing string array between android activities在android活动之间传递字符串数组
【发布时间】:2011-05-24 15:54:51
【问题描述】:

我在 First Activity - A 中有 2 个字符串数组,现在我需要将两个数组都传递给 second_activity - B,我该怎么做?

我知道 Android 中的 Intent 类概念,并且已经将单个变量值传递给另一个活动,但我还没有实现在活动之间传递字符串数组的概念,我有已经上网了。

请告诉我可能的解决方案。

【问题讨论】:

    标签: android


    【解决方案1】:

    不是直接回答问题,但您也可以在捆绑包中使用 .putStringArrayListExtra()。比发送字符串数组更灵活。

    Bundle b=new Bundle();
    b.putStringArrayListExtra("URL_ARRAY_LIST",
                            myStringArrayList);
    Intent i=new Intent(context, Class);
    i.putExtras(b);
    

    那么就可以得到这个arrayList如下:

    ArrayList<String> urls;
    urls = getIntent().getStringArrayListExtra("URL_ARRAY_LIST");
    

    【讨论】:

    • 是的,这不是问题的确切答案,但是是的,我们可以使用这个替代解决方案。顺便说一句,问题已经快 4 岁了:-)
    • @PareshMayani 我知道它很旧我需要在两个动态的活动之间传递字符串数据,因此字符串数组效率低下,因为我们无法更改大小这是我的问题的解决方案并想要分享它。
    • @PareshMayani 四年后你有没有遇到任何新的解决方案?
    • @HabeebPerwad 检查接受和其他答案!那里已经提供了解决方案。
    • @HabeebPerwad 现在没有方便的方法,看看 Android 中的 Parceable
    【解决方案2】:

    Intent 将数据携带到键值映射中,其中“key”是您在将数据存储到 Intent 时选择的字符串名称标识符。读取该数据时,您请求相同的“密钥”。您可以在单个 Intent 中存储各种数据类型。

    【讨论】:

    • 是的,我在询问有关“密钥”的问题时犯了一个愚蠢的错误,顺便说一句,谢谢支持
    【解决方案3】:
    Bundle b=new Bundle();
    b.putStringArray(key, new String[]{value1, value2});
    Intent i=new Intent(context, Class);
    i.putExtras(b);
    


    希望这会对您有所帮助。

    为了阅读:

    Bundle b=this.getIntent().getExtras();
    String[] array=b.getStringArray(key);
    

    【讨论】:

    • @viv thanx 感谢您的快速支持,但能否请您告诉我有关“key”的信息,它是单个值还是数组?请
    • 这只是一个名称,您想在另一个活动中使用它来捕获您的数组......例如:array1 或 array2:所以您只能在其他活动中使用这个名称来捕获它。 .....
    • @viv ya 我已经完成了,应该怎么做才能在第二个活动中读取捆绑包?
    • this.getIntent().getExtras().getStringArray(key);
    • @metter @viv 这真是我的愚蠢问题,这与我们发送和接收单个值的方式相同,,,....顺便说一句,非常感谢快速,支持和帮助回答
    猜你喜欢
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多