我们如何在android中的另一个java类的静态方法中访问activity类的ArrayList对象



我需要访问activity类的ArrayList对象,以获得要在可扩展列表视图中显示的值。

public static HashMap<String, List<String>> getData() {
//here i need access the arraylist object
HashMap<String, List<String>> expandableListDetail = new HashMap<String, List<String>>();
List<String>  size = new ArrayList<String>();
size.add("Regular");
size.add("Large");
List<String> Addons = new ArrayList<String>();
Addons.add("one small cheese");
Addons.add("chicken");
expandableListDetail.put("Choice of Size", size);
expandableListDetail.put("Choice of Add ons", Addons);

return expandableListDetail;
}

在活动中创建一个静态ArrayList(例如:itemList(

static ArrayList<Item> itemList = new ArrayList<>();

访问创建的数组列表,如下所示,

ArrayList<Item> list = YOURACTIVITYNAME.itemList;

您可以轻松创建两个独立的函数,一个用于创建size,另一个用于生成Addons。然后在您的Activity中,只需调用函数来设置expandableListDetail

expandableListDetail.put("Choice of Size", getSizes());
expandableListDetail.put("Choice of Add ons", getAddons());

因此,基本上,您只需要将getData方法分为两部分,并为Activity提供必要的列表。

您有一个静态函数,需要在静态方法中访问活动类的普通ArrayList对象,因此,static关键字的规则是,如果您有静态函数,那么在静态函数中,所有成员都必须是静态的。

对于您的情况,您需要使活动类的ArrayList对象为静态对象,然后在尝试之后。

您只需要在活动中将ArrayList设置为公共和静态,如下所示。

public static ArrayList<String> myList;

并在getData((方法中的另一个类中使用这个数组列表,如下面的

ActivityName.myList;

相关内容

  • 没有找到相关文章

最新更新