从Activity传递ArrayList到ListFragment?

3

我想要实现一个片段布局。我有一个作为启动屏幕的活动,从网络获取一些数据,并创建我的自定义对象的ArrayList。

通常情况下,如果我使用ListView,我只需执行以下操作。

private ArrayList<Articles> articles;

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

我该如何将相同的数据传递给一个Fragment?非常感谢您的帮助。

3个回答

3

很简单,使用Global类:

public static ArrayList<Articles> articles = new ArrayList<Articles>;

在主Activity中使用Global.articles = articles;

现在你可以在项目的任何地方使用它。


谢谢,它起作用了,但静态变量会占用内存空间!还有其他可能的方法吗? - Nischal
@Nischal 是的,你可以参考这个链接:http://stackoverflow.com/questions/14997855/pass-the-arraylist-with-particular-id-from-one-class-to-another-in-android - Parag Chauhan

2

这取决于ArrayList的类型

  • putIntegerArrayListExtra(String name, ArrayList value):将整数类型的ArrayList作为参数,用于存储数据

  • putParcelableArrayListExtra(String name, ArrayList value):将可序列化对象类型的ArrayList作为参数,用于存储数据

  • putStringArrayListExtra(String name, ArrayList value):将字符串类型的ArrayList作为参数,用于存储数据

  • putCharSequenceArrayListExtra(String name, ArrayList value):将CharSequence类型的ArrayList作为参数,用于存储数据

然后,在下一个活动中,通过用键字符串替换put并设置为参数来读取,例如:

myIntent.getStringArrayListExtra("arrayPeople");

-2

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

如果我有两个活动 A 和 B,我想将 ArrayList> 值传递到 Activity B,则在 A 类中使用以下代码:

从 Activity A 传递 ArrayList> 数据到 Activity 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);

获取 Activity B 中的值

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

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

问题是关于ListFragment的,不是关于Activity的。 - Isuru

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接