Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:为ListView适配器创建多维数组_Android - Fatal编程技术网

Android:为ListView适配器创建多维数组

Android:为ListView适配器创建多维数组,android,Android,以下是我现在拥有的: private Object mainArray[] = {R.drawable.main_logo, "page_4"}; private Object studioArray[] = {R.drawable.studio_logo, "page_5"}; private Object gArray[] = {R.drawable.g_logo, "page_6"}; private Object venues[] = {mainArray,stu

以下是我现在拥有的:

private Object mainArray[] = {R.drawable.main_logo, "page_4"};
    private Object studioArray[] = {R.drawable.studio_logo, "page_5"};
    private Object gArray[] = {R.drawable.g_logo, "page_6"};
    private Object venues[] = {mainArray,studioArray,gArray};

我将Vincements数组对象传递给适配器,但无法获取对象的大小:vinces.size();有更好的方法吗?

看起来场馆是一个对象数组,但它不包含对象,它包含对象数组。因此,与其拥有一个对象数组,不如让场馆成为一个对象数组

也许是这样的

private Object[] venues[] = {mainArray,studioArray,gArray};

我对这个答案并不十分自信,因为我是C++程序员,但这是我首先要做的。我相信您也可以使用更复杂的数据结构,如ArrayList,它可能会为您提供比数组更多的功能。

因为您使用的是数组,所以应该调用

venues.length 
而不是场地。大小()

但是:

正如@arasmussen在最后几行中所说,你可以使用更复杂的 数据结构也像ArrayList

我不知道您的代码的上下文,但在这种情况下,普通数组似乎有点不合适。因为您创建了对象数组,所以不知道数组中有什么(对象除外)。我猜创建对象数组的唯一原因是希望将int和字符串存储在一起

地图更适合这种情况,因为它确实定义了您要存储的对象类型,并且还确保您不能在其中放置其他对象。此外,当您需要在数组中搜索并提取或提取值时,映射将在以后提供更多功能

我建议这样做:

Map<Integer, String> main = new HashMap<Integer, String>();
main.put(R.drawable.main_logo, "page_4");

Map<Integer, String> studio = new HashMap<Integer, String>();
main.put(R.drawable.studio_logo, "page_5");

Map<Integer, String> gArray = new HashMap<Integer, String>();
main.put(R.drawable.g_logo, "page_6");

ArrayList<Map<Integer, String>> venues = new ArrayList<Map<Integer, String>>();
venues.add(main);
venues.add(studio);
venues.add(gArray);

for(地图元素:场馆)
{
如果(element.containsKey(R.drawable.main_logo)){}//执行某些操作
如果(element.containsValue(“第5页”){}//执行其他操作
}
也许我有点忘乎所以了。但是我不喜欢创建对象数组,因为你不知道以后这些数组中到底是什么

venues.size(); // Get the number of venues
for(Map<Integer, String> element : venues)
{
    if(element.containsKey(R.drawable.main_logo)){} // do something
    else if(element.containsValue("page 5")){} // do something else
}