ListView只从ArrayList打印第一个值

时间:2015-03-02 08:23:53

标签: java android listview arraylist

我已经尝试过搜索其他问题,其中大多数问题都与滚动视图中的列表视图有关,但我没有滚动视图,所以它没有多大帮助。我确定它很小,但我似乎无法确定它。下面应该将3个animalNames打印到listview,但只打印第一个。

JSONArray mainNode = new JSONArray(loadJSONFromAsset()); // call the connection to json
        ArrayList<String> animalsArray = new ArrayList<String>();

        if(mainNode != null) //puts the values into an array
        {
            for(int i=0;i<mainNode.length();i++)
            {
                JSONObject eachObject = mainNode.getJSONObject(i);
                animalsArray.add(eachObject.getString("animalName"));
            }

            //prints array to check
            for(String stuff : animalsArray)
            {
                Log.i("name", stuff);
            }

            ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, animalsArray);
            animalsList = (ListView) findViewById(R.id.animalList);
            animalsList.setAdapter(arrayAdapter);
        }

这会将我的JSON中的3个值打印到logcat,所以我确定它得到的值,我只是不确定它为什么只打印第一个进入名单。

如果有任何用途,我目前的布局如下。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip" >

<ListView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/animalList"/>

任何关于为什么它只打印第一个的想法都将非常感激。

感谢。

1 个答案:

答案 0 :(得分:1)

这是因为线性布局的高度对应于一个listView项的高度:

  

机器人:layout_height =&#34;机器人:?ATTR / listPreferredItemHeight&#34;

使用其他值设置高度(如果您想要全屏高度,则匹配match_parent)