将ArrayList从Activity传递给ListFragment?

时间:2012-04-22 04:56:54

标签: android android-fragments

我正在尝试实现片段布局。我有一个服务器作为SplashScreen&从Web获取一些数据并创建我的自定义对象的ArrayList。

通常如果我使用ListView,我会执行以下操作。

private ArrayList<Articles> articles;

private void isComplete() {
         Intent intent = new Intent(SplashScreen.this, ListActivity.class);
         intent.putExtra("data", articles);
         startActivity(intent);
         finish();
    }

如何将相同的数据传递给片段?非常感谢你的帮助。

3 个答案:

答案 0 :(得分:3)

简单的采取Global类 declare public static ArrayList<Articles> articles = new ArrayList<Articles>; 在主要活动Global.articles = articles; 现在你可以使用Project中的任何位置。

答案 1 :(得分:2)

这取决于arraylist的类型

  • putIntegerArrayListExtra(String name,ArrayList value)

  • putParcelableArrayListExtra(String name,ArrayList value)

  • putStringArrayListExtra(String name,ArrayList value)

  • putCharSequenceArrayListExtra(String name,ArrayList value)

然后你可以通过将带有键字符串作为参数的put替换为put来读取下一个活动,例如

myIntent.getStringArrayListExtra("arrayPeople");

答案 2 :(得分:-2)

使用putExtra将值传递给intent。使用getSerializableExtra方法检索数据

如果我有两个活动A和B,我想传递ArrayList&gt;值为Activity B然后我将在A类中使用以下代码

传递ArrayList&gt;活动A到活动B的数据

Intent intent = new Intent(this, B.class);
HashMap<String, String> hm = new HashMap<String, String>();
hm.put("sunil", "sahoo");
ArrayList<HashMap<String, String>> arl = new ArrayList<HashMap<String, String>>();
arl.add(hm);
intent.putExtra("arraylist", arl);
startActivityForResult(intent, 500);

检索活动B中的值

在B类中,我将编写以下代码来检索数据

ArrayList<HashMap<String, String>> arl =(ArrayList<HashMap<String, String>>) getIntent().getSerializableExtra("arraylist");
System.out.println("...serialized data.."+arl);