如何使用相同的ArrayAdapter在同一个Activity中将GridView与ListView交换?

时间:2013-05-01 17:58:27

标签: java android android-layout

我正在编写一个显示域模型列表的应用程序。默认行为是在ListView中显示这些模型。我打算让用户在将这些数据看作列表或使用GridView作为网格之间进行交换。这样做的惯用方法是什么?

我的域模型是一个简单的pojo,我为它创建了一个CustomArrayAdapter和一个自定义行布局,目前看起来像这样:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+id/label" >
    </TextView>

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="25dp"
        android:layout_toRightOf="@+id/label"
        android:text="@+id/text" />

</RelativeLayout> 

我希望对两种布局使用相同的ArrayAdapter

我的活动布局相当简单:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_vertical"
    tools:context=".MainActivity" >

    <!-- what do I put here? -->

</RelativeLayout>

2 个答案:

答案 0 :(得分:5)

为什么不总是使用gridview,并使用

将列设置为“ListView”模式 通过代码

android:numColumnssetNumColumns(int)

更多信息:http://developer.android.com/reference/android/widget/GridView.html

答案 1 :(得分:0)

这个令人敬畏的图书馆是游戏改变者https://github.com/dexafree/MaterialList