arrayAdapter only returning one position, Android
android, android-arrayadapter
Solution
found out that the problem was the ListView was inside a ScrollView in the xml Layout, once i removed the outer ScrollView all the items of the ListView showed up.
for some reason if you encapsulate a ListView nested in several layers it will show only one position item if the ListView in inside a ScrollView
Problem
I set the arrayList to 12 items, however the arrayAdapter only returns one item on the screen, why is this? It is supposed to show 12 items on the list. ``` public class MainActivity extends Activity { ArrayList<CheckBoxInfo> cfo = new ArrayList<CheckBoxInfo>(); CheckBoxInfo cbr; private ListAdapter MyAdapter; ListView listview; MyAdapter myAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); cbr = new CheckBoxInfo(); cbr.checkBoxName = "dfdjklfjdkljf"; cbr.checkBoxState = true; for(int i = 0; i <12; i++){ cfo.add(cbr); } Toast.makeText(MainActivity.this, "size: " + cfo.size(), Toast.LENGTH_SHORT).show(); listview = (ListView) findViewById(R.id.listView); myAdapter = new MyAdapter(cfo, this); listview.setAdapter(myAdapter); } public class MyAdapter extends ArrayAdapter<CheckBoxInfo> { private List<CheckBoxInfo> checkBoxList; private Context context; public MyAdapter(List<CheckBoxInfo> infoList, Context context) { super(context, R.layout.row_layout, infoList); this.checkBoxList = infoList; this.context = context; } public View getView(int position, View convertView, ViewGroup parent) { // First let's verify the convertView is not null if (convertView == null) { // This a new view we inflate the new layout LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.row_layout, parent, false); } // Now we can fill the layout with the right values TextView tv = (TextView) convertView.findViewById(R.id.textView1); CheckBox cb = (CheckBox) convertView.findViewById(R.id.checkBox1); CheckBoxInfo cbi = checkBoxList.get(position); Toast.makeText(MainActivity.this, "position: " + position, Toast.LENGTH_SHORT).show(); tv.setText(cbi.checkBoxName); return convertView; } } // end MyAdapter } ``` row_layout.xml ``` <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" " /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Large Text" android:textAppearance="?android:attr/textAppearanceLarge" /> </LinearLayout> ```