繁体   English   中英

ListView仅打印ArrayList中的第一个值

[英]ListView only printing first value from ArrayList

我尝试搜索其他问题,其中大多数与将listview包含在scrollview中有关,但是我没有scrollview,因此没有太大帮助。 我确定这是我所缺少的小东西,但我似乎无法查明。 下面应该将3个动物名称打印到列表视图中,但仅打印第一个。

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"/>

关于为什么只打印第一个的任何想法将不胜感激。

谢谢。

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

机器人:layout_height = “机器人:ATTR / listPreferredItemHeight”

使用其他值设置高度(例如,如果要全屏显示高度,则使用match_parent)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM