显示一定数量的Listview

时间:2015-06-01 20:27:55

标签: android listview android-listview

我正在尝试让ListView一次显示一定数量的项目。这就是我现在拥有的。项目和亲戚只是按钮,每个按钮下面都有一个ListView。

enter image description here

我希望它看起来像以下两个项目:

http://i.imgur.com/ulHoUHe.png

这就是我的布局。任何帮助表示赞赏。

<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:background="@drawable/background_login">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Log out"
            android:id="@+id/backToLoginButton"
            android:background="@android:color/transparent"
            android:textSize="18dp"
            android:onClick="onLogoutClick"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"/>

        <ImageView
            android:layout_width="100dp"
            android:layout_height="30dp"
            android:scaleType="fitXY"
            android:adjustViewBounds="true"
            android:src="@drawable/logo"
            android:id="@+id/logoView"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:paddingLeft="10dp"/>

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="centerCrop"
            android:src="@drawable/misc_no_image"
            android:id="@+id/profilePhotoView"
            android:layout_marginTop="44dp"
            android:layout_below="@+id/backToLoginButton"
            android:layout_centerHorizontal="true" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Full Name"
            android:id="@+id/nameTextView"
            android:layout_below="@+id/profilePhotoView"
            android:paddingTop="10dp"
            android:layout_centerHorizontal="true" />

        <ImageButton
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:scaleType="fitXY"
            android:id="@+id/photoUploadButton"
            android:src="@drawable/menu_camera"
            android:background="#0000"
            android:layout_above="@+id/nameTextView"
            android:layout_centerHorizontal="true"/>

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/nameTextView"
            android:paddingTop="20dp"
            android:id="@+id/scrollView"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true" >

            <RelativeLayout
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center"
                android:id="@+id/textLayout">

                <ImageButton
                    android:layout_width="match_parent"
                    android:layout_height="60dp"
                    android:scaleType="fitXY"
                    android:id="@+id/relativesRegisterButton"
                    android:src="@drawable/menu_detail_header"
                    android:background="#0000"
                    android:onClick="onAddRelativesClick"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentStart="true" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerHorizontal="true"
                    android:paddingTop="20dp"
                    android:textSize="32sp"
                    android:text="Relatives"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:id="@+id/textView2" />

                <ImageButton
                    android:layout_width="match_parent"
                    android:layout_height="60dp"
                    android:scaleType="fitXY"
                    android:id="@+id/vehicleRegisterButton"
                    android:layout_below="@+id/relativeListView"
                    android:src="@drawable/menu_detail_header"
                    android:background="#0000"
                    android:onClick="onAddVehicleClick"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentStart="true" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/relativeListView"
                    android:layout_centerHorizontal="true"
                    android:paddingTop="20dp"
                    android:textSize="32sp"
                    android:text="Vehicles"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:id="@+id/vehicleTextView" />

                <ListView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/relativeListView"
                    android:background="#ffffffff"
                    android:layout_below="@+id/relativesRegisterButton"
                    android:layout_centerHorizontal="true" />

                <ListView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/vehicleListView"
                    android:background="#ffffffff"
                    android:layout_below="@+id/vehicleRegisterButton"
                    android:layout_centerHorizontal="true" />

            </RelativeLayout>
        </ScrollView>


    </RelativeLayout>

这是填充listview时的代码:

private void setVehiclesList(){         String [] userNames = new String [vehicleJSONDataArray.length()];

    for(int i = 0; i < vehicleJSONDataArray.length(); i++){
        JSONObject relative = vehicleJSONDataArray.optJSONObject(i);
        JSONObject relativeUser;
        try {
            relativeUser = relative.getJSONObject("vehicle");
            userNames[i] = relativeUser.getString("brand") + " " + relativeUser.getString("model");
        }catch (Exception e){

        }

    }

    ListAdapter vehicleListAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, userNames);
    ListView vehicleListView = (ListView) findViewById(R.id.vehicleListView);
    vehicleListView.setAdapter(vehicleListAdapter);

3 个答案:

答案 0 :(得分:0)

您正在犯一个非常严重的错误:您正在尝试在scrollView中添加ListView。 ListView自动滚动,将滚动放在另一个滚动内是一个非常糟糕的主意。

您需要的只是一个ExpandableListView

答案 1 :(得分:0)

您可以使用之前建议的可扩展列表视图,但如果您想按照当前的方式对其进行格式化,那么您只需使用一个简单的数组适配器。

//create a string array with the list entries
String[] items = new String[2];
items[0] = "Bread";
items[1] = "Milk";

//array adapter using the array above
ArrayAdapter<String> itemsAdapter = 
        new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);

//attach it to whatever listview here 
ListView listView = (ListView) findViewById(R.id.lvItems);
listView.setAdapter(itemsAdapter);

答案 2 :(得分:0)

您可以将高度值定义为静态,而不是{{1}},也可以在滚动视图中定义一些dp,以使更多项目可见。