在Android应用程序中共享ArrayList <custom> </custom>

时间:2013-07-03 18:25:31

标签: java android arraylist

我有一个json文件。所以,我解析了json文件,并将所有值存储在ArrayList中。现在,我想在应用程序中共享所有类的值。那么,有什么建议和有效的方法呢?

3 个答案:

答案 0 :(得分:2)

Singleton 模式。

只需为您的List对象创建一个公共静态参考,然后从您应用的任何部分访问它。只要您的应用程序还活着,它就可以访问。并且您可以手动解除分配(通过使引用为空)。

public class SharedData {
  public static List<Custom> jsonData;
}

以及申请的任何部分:

SharedData.jsonData = new ArrayList<Custom>();

并阅读数据

Custom obj = SharedData.jsonData.get(0);

Singleton wiki

答案 1 :(得分:1)

  

现在,我想在应用程序中共享所有类的值。那么,有什么建议和有效的方法呢?

假设您在上述问题中错过了介词 “with” ,并希望在所有其他课程中使用您的arraylist,您可能想要去全局Arraylist,它只是在新类中声明公共静态Arraylist (我们称之为GlobalState.java)。

/** GLobalState.java **/
public class GlobalState {
    public static ArrayList<E> jsonGlobalArrayList;
}

你可以使用getter&amp;如果你愿意,可以设置。

现在,只要在解析json文件后填充了你的arraylist,你就可以将你的arraylist分配给这个全局Arraylist。

 GlobalState.jsonGlobalArrayList = jsonArrayList; 

每当我处理json值时,这就是我的方法。希望这会有所帮助。

P.S。:请原谅我过度简化这个解决方案,因为当我提到全局ArrayList时你可能已经理解了这一点。 :)

答案 2 :(得分:0)

public class Utilities {

  public static boolean boolVar = false ;
  public static int intVar= 0 ;
  public static String str = "" ;

  public static List<Object> aList= new ArrayList<Object>() ;
  public static HashMap<String, Object> aMap= new HashMap<String, Object>() ;

}

使用类名称来使用它们;

  

Utilities.boolVar = boolValue; Utilities.intVar = intValue;

内部活动。

相关问题