2

所以我做了一个自定义的ArrayAdapter来填充我的列表,它只是覆盖getView(int position,View v,ViewGroup parent)。Android列表+适配器只显示第一项

如果我用这样的:

public class MyActivity extends ListActivity { 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setListAdapter(adapter); 
    } 
} 

寄托都工作正常,我的列表正确显示所有条目。

现在,如果我尝试使用相同的适配器类别上一个<的ListView />在XML布局,像这样:

ListView lv = (ListView) v.findViewById(R.id.list); 
MyAdapter a = new MyAdapter (lv.getContext(), R.layout.list_item, entries); 
lv.setAdapter(a); 

它只显示列表的第一个条目。

我已经尝试用adapter.add(entry.get(i))手动添加项目;并调用adapter.notifyDataSetChanged();事后哪些没有帮助。

E:这里的XML布局:

<?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> 

+0

您是否将'getCount'实现为'return 1'? – zapl 2012-04-25 15:38:15

+0

你可以粘贴列表中的XML吗?这可能是布局大小的问题 – njzk2 2012-04-25 16:31:08

+0

不,我不重写getCount并返回正确数量的条目。 – Dreiven 2012-04-25 16:39:03

回答

10

我想你不应该用你的ListView滚动视图中为ListView控件提供了内置的滚动功能。在上面的代码中,由于在Linear Layout中垂直添加所有视图,所以您的ListView进入了底部,因此根是ScrollView,List视图的自动滚动视图选项无法向您显示所有条目。只要想一想,并尝试在ScrollView之外添加ListView。