So I’ve made a custom ArrayAdapter to populate my Lists, which just overrides getView(int position, View v, ViewGroup parent).
If I use it like this:
public class MyActivity extends ListActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(adapter);
}
}
Everthing works fine and my List is correctly displayed with all entries.
Now if I try to use the same Adapter Class on a < ListView/> in a XML Layout, like this:
ListView lv = (ListView) v.findViewById(R.id.list);
MyAdapter a = new MyAdapter (lv.getContext(), R.layout.list_item, entries);
lv.setAdapter(a);
it shows only the first entry of the List.
I already tried adding the items manually with adapter.add(entry.get(i)); and calling adapter.notifyDataSetChanged(); afterwards which didn’t help.
e: Here’s the XML Layout:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="1dp">
<TextView
android:id="@+id/bc_path"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="3dp"
android:textStyle="bold"
android:textAppearance="?android:attr/textAppearanceSmall"/>
<TextView
android:id="@+id/bc_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="3dp"
android:textStyle="bold"
android:textAppearance="?android:attr/textAppearanceMedium"
android:background="@drawable/title_gradient"/>
<TextView
android:id="@+id/bc_genre"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="3dp"
android:background="@drawable/location_gradient"
android:textColor="#ffffff"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="0.4"
android:layout_marginTop="3dp"
android:layout_marginBottom="3dp">
<ImageButton
android:id="@+id/bc_homepage"
android:src="@drawable/homepage"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight=".1"
android:padding="0dp"
android:onClick="loadWebsite"
android:background="@drawable/black_button"
android:layout_margin="2dp"
/>
<ImageButton
android:id="@+id/bc_facebook"
android:src="@drawable/facebook"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight=".1"
android:padding="0dp"
android:onClick="loadWebsite"
android:background="@drawable/black_button"
android:layout_margin="2dp"
/>
<ImageButton
android:id="@+id/bc_myspace"
android:src="@drawable/myspace"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight=".1"
android:padding="0dp"
android:onClick="loadWebsite"
android:background="@drawable/black_button"
android:layout_margin="2dp"
/>
<ImageButton
android:id="@+id/bc_fav"
android:src="@drawable/d_attends"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight=".1"
android:padding="0dp"
android:onClick="favBand"
android:background="@drawable/black_button"
android:layout_margin="2dp"
/>
</LinearLayout>
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"/>
</LinearLayout>
I think you should not use ListView inside your scrollView as ListView inbuilt provides scrolling feature. In the above code , your ListView is coming at the bottom due to vertically adding all views inside Linear Layout so as root is ScrollView, List view’s auto scroll view option is not able to show you all entries. Just give a thought for this and try adding ListView outside ScrollView.