ListView 仅打印 ArrayList 中的第一个值
ListView only printing first value from ArrayList
我试过搜索其他问题,其中大部分与在滚动视图中包含列表视图有关,但我没有滚动视图,因此没有太大帮助。我确定这是我遗漏的小东西,但我似乎无法查明它。下面应该将 3 个 animalNames 打印到列表视图,但只打印第一个。
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 到 logcat 中的 3 个值,所以我确定它正在获取这些值,我只是不确定为什么它只将第一个位置打印到列表。
如果有用,我现在的布局如下。
<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 项目的高度:
android:layout_height="?android:attr/listPreferredItemHeight"
设置其他值的高度(如match_parent如果你想要全屏高度)
我试过搜索其他问题,其中大部分与在滚动视图中包含列表视图有关,但我没有滚动视图,因此没有太大帮助。我确定这是我遗漏的小东西,但我似乎无法查明它。下面应该将 3 个 animalNames 打印到列表视图,但只打印第一个。
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 到 logcat 中的 3 个值,所以我确定它正在获取这些值,我只是不确定为什么它只将第一个位置打印到列表。
如果有用,我现在的布局如下。
<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 项目的高度:
android:layout_height="?android:attr/listPreferredItemHeight"
设置其他值的高度(如match_parent如果你想要全屏高度)