ListView只显示1项

时间:2014-10-18 17:36:34

标签: android listview show

我有这个序列的布局:imageview,ratingbar和tabhost(包含用户和信息的评论)。对于用户的tabhost审查,我使用自定义列表视图,并且我成功地显示了来自用户的所有评论。但我的问题,你可以看到下面的图像(listview高度只包含1个项目的内容,如果我滚动它,它可以加载所有数据)

http://pbrd.co/1wctFFz

这个我要制作的布局(它显示多个项目作为父级的高度)

http://pbrd.co/1wctBFZ

这是我的布局xml

<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <!-- HEADER -->
    <LinearLayout
        android:id="@+id/header"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" 
        android:layout_centerHorizontal="true"
        android:background="#dcdcdc"
       android:paddingTop="5dp"
       android:paddingBottom="5dp"
        android:layout_alignParentTop="true">
        <ImageView 
            android:id="@+id/ivplacedetail"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical|center_horizontal"
            android:src="@drawable/search"/>
        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Name" />   
        <RatingBar
            android:id="@+id/ratingBar1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />     

    </LinearLayout>
    <!-- FOOTER -->
    <LinearLayout
        android:id="@+id/footer"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" 
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        android:background="#a9d633">
        <Button 
           android:id="@+id/btnhome"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:layout_marginLeft="2dp"
           android:layout_marginRight="2dp"
           android:layout_marginTop="2dp"
           android:layout_marginBottom="2dp"
           android:text="Home"
           android:background="@layout/round_border"/>          
        <Button 
           android:id="@+id/btnbookmark"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:layout_marginLeft="2dp"
           android:layout_marginRight="2dp"
           android:layout_marginTop="2dp"
           android:layout_marginBottom="2dp"
           android:text="Bookmark"
           android:background="@layout/round_border"/>  
        <Button 
           android:id="@+id/btnnearby"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:layout_weight="1"
           android:layout_marginLeft="2dp"
           android:layout_marginRight="2dp"
           android:layout_marginTop="2dp"
           android:layout_marginBottom="2dp"
           android:text="Nearby"
           android:background="@layout/round_border"/>             
    </LinearLayout>     
    <ScrollView 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@+id/footer"
        android:layout_below="@+id/header">     
        <TabHost
            android:id="@android:id/tabhost"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">

            <LinearLayout
                android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">

                <TabWidget
                    android:id="@android:id/tabs"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent" />

                <FrameLayout
                    android:id="@android:id/tabcontent"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"/>

            </LinearLayout> 
        </TabHost>                          
    </ScrollView>
</RelativeLayout>

我的listview自定义布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"> 

     <ImageView 
         android:id="@+id/imguser" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content"
         android:layout_margin="1dp"
         android:src="@drawable/atmicon"
         android:scaleType="fitCenter"> 
     </ImageView>

    <TextView 
        android:id="@+id/lbluser" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"  
        android:layout_marginLeft="5dp"
        android:layout_marginTop="3dp"
        android:layout_marginBottom="1dp"
        android:layout_toRightOf="@+id/imguser"
        android:textColor="#4068ec"
        android:text="Nama User"> 
    </TextView> 
    <TextView 
        android:id="@+id/lblwaktu" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"  
        android:layout_toRightOf="@+id/imguser"
        android:layout_below="@+id/lbluser"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="1dp"
        android:layout_marginBottom="1dp"
        android:text="Waktu Review">
    </TextView> 
    <TextView 
        android:id="@+id/lblreview" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_toRightOf="@+id/imguser"
        android:layout_below="@+id/lblwaktu"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="1dp"
        android:layout_marginBottom="1dp"
        android:text="isi Review">        
    </TextView>  
</RelativeLayout>

我的列表视图布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/lvreview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

</LinearLayout>

有人可以帮我修改布局吗?

2 个答案:

答案 0 :(得分:0)

首先在主类中声明适配器

private ListViewReviewAdapter reviewAdapter;

首先,首先启动适配器然后向其添加数据,即使arruserreview为空

reviewAdapter = new ListViewReviewAdapter(getBaseContext(), arruserreview);
lvreview.setAdapter(reviewAdapter);

在for循环中执行以下操作:

for (int i=1;i<=10;i++) {
    UserReviewClass userreview=new UserReviewClass(String.valueOf(i),"Budi"+String.valueOf(i),"10/19/2014","Tempatnya lumayan. Pelayanan yang diberikan baik");
    arruserreview.add(userreview);
    reviewAdapter.notifyDataSetChanged();
}

所以你会有这样的事情:

ArrayList<UserReviewClass> arruserreview = new ArrayList<UserReviewClass>();
ListView lvreview ;
private ListViewReviewAdapter reviewAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_place_review);

    lvreview     = (ListView) findViewById(R.id.lvreview);
    reviewAdapter = new ListViewReviewAdapter(getBaseContext(), arruserreview);
    lvreview.setAdapter(reviewAdapter);

    for (int i=1;i<=10;i++) {
        UserReviewClass userreview=new UserReviewClass(String.valueOf(i),"Budi"+String.valueOf(i),"10/19/2014","Tempatnya lumayan. Pelayanan yang diberikan baik");
        arruserreview.add(userreview);
        reviewAdapter.notifyDataSetChanged();
    }


}

答案 1 :(得分:0)

正如Daniel M所提到的那样,宣布你的适配器(出于各种原因,这只是一种很好的做法)。

private ListViewReviewAdapter reviewAdapter;

在for循环中构建arruserreview数组后,将数组传递给适配器并进行设置:

reviewAdapter = new ListViewReviewAdapter(this, arruserreview);
lvreview.setAdapter(reviewAdapter);

在数组适配器中,将构造函数更改为:

public ListViewReviewAdapter(Context context, ArrayList<UserReviewClass> results) {
    DataProcessorResult = results;
    mycontext = context;
    myInflater = LayoutInflater.from(context);
}

由于您在reviewAdapter和构造函数中将上下文作为参数传递,因此您可以从适配器类中删除以下行:

final Context mycontext=parent.getContext();