用另一个xml布局替换listview中的项目

时间:2015-06-11 21:36:38

标签: android xml android-layout listview android-listview

我有一个listview,它在onCreate()方法中填充。列表视图中的每个项目都采用TextView Button Button Button格式。我想要做的是当用户点击TextView时,一个不同的.xml布局被加载到listview中的那个位置,该位置扩展了当前显示的细节。我知道我应该使用onClickListener但是我不知道如何编写我的适配器,在那个位置应该加载一个单独的listview。

CURRENT ADAPTER

  ListAdapter adapter = new SimpleAdapter(

                                      AllGameslistActivity.this, gamesList,
                                      R.layout.list_item, new String[]{TAG_GID,
                                      TAG_TEAMS, TAG_HOME, TAG_DRAW, TAG_AWAY},
                                      new int[]{R.id.gid, R.id.Teams, R.id.homewinspecial, R.id.drawspecial, R.id.awaywinspecial});


                              // updating listview
                              setListAdapter(adapter);

目前的XML项目布局

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

<!-- Product id (pid) - will be HIDDEN - used to pass to other activity -->
<TextView
    android:id="@+id/gid"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"

    android:visibility="gone"/>

<!-- Name Label -->
<TextView
    android:id="@+id/Teams"
    android:layout_width="135dp"
    android:layout_gravity = "center_vertical"
    android:layout_height="wrap_content"
    android:textSize="14sp"
    android:textStyle="bold" />

<Space
    android:layout_width="wrap_content"
    android:layout_height="match_parent" />

<Button
    android:layout_width="70dp"
    android:layout_height="wrap_content"
    android:text="1.40"
    android:textColor="#000000"
    android:textSize="18sp"
    android:onClick="SelectBet"
    android:id="@+id/homewinspecial"
    android:layout_weight="1"/>

<Button

    android:layout_width="70dp"
    android:layout_height="wrap_content"
    android:text="3.40"
    android:textColor="#000000"
    android:textSize="18sp"
    android:onClick="SelectBet"
    android:id="@+id/drawspecial"
    android:layout_weight="1"/>

<Button
    android:layout_width="70dp"
    android:layout_height="wrap_content"
    android:text="3.60"
    android:textColor="#000000"
    android:textSize="18sp"
    android:onClick="SelectBet"
    android:id="@+id/awaywinspecial"
    android:layout_weight="1"/>

扩展的XML布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout
        android:layout_width="fill_parent"
        android:orientation="vertical"
        android:layout_height="fill_parent">
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text = "Barcelona - Sevilla"
                android:gravity="center"
                android:textSize="20sp"
                android:textStyle="bold"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="20dp">
            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text = "Match Betting"
                android:gravity="left"
                android:textStyle="bold"
                android:textSize="15sp"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:orientation="horizontal"
            android:weightSum="100"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:text = "Barcelona"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:text = "Draw"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:text = "Sevilla"
                android:textSize="15sp"/>

        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:orientation="horizontal"
            android:weightSum="100"
            android:layout_height="wrap_content">
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:text="1.55"/>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:text="1.55"/>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:text="1.55"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="20dp">
            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text = "Match and Both Teams to Score"
                android:gravity="left"
                android:textStyle="bold"
                android:textSize="15sp"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:orientation="horizontal"
            android:weightSum="100"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:text = "Barcelona"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:text = "Draw "
                android:textSize="15sp"/>
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:text = "Sevilla"
                android:textSize="15sp"/>

        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:orientation="horizontal"
            android:weightSum="100"
            android:layout_height="wrap_content">
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:text="2.70"/>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:text="4.00"/>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:text="7.00"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="20dp">
            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text = "Both Teams to Score"
                android:gravity="left"
                android:textStyle="bold"
                android:textSize="15sp"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:orientation="horizontal"
            android:weightSum="100"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="50"
                android:gravity="center"
                android:text = "Yes"
                android:textSize="15sp"/>

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="50"
                android:gravity="center"
                android:text = "No"
                android:textSize="15sp"/>

        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:orientation="horizontal"
            android:weightSum="100"
            android:layout_height="wrap_content">
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="50"
                android:text="1.65"/>

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="50"
                android:text="2.10"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="20dp">
            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text = "Over/Under Goals"
                android:gravity="left"
                android:textStyle="bold"
                android:textSize="15sp"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:orientation="horizontal"
            android:weightSum="100"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="50"
                android:gravity="center"
                android:text = "Over"
                android:textSize="15sp"/>

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="50"
                android:gravity="center"
                android:text = "Under"
                android:textSize="15sp"/>

        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:orientation="horizontal"
            android:weightSum="100"
            android:layout_height="wrap_content">
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="50"
                android:weightSum="100"
                android:orientation="vertical"
                android:layout_gravity="center">
                <Button
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="0.5 - 1.30"/>
                <Button
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="1.5 - 1.50"/>
                <Button
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="2.5 - 1.80"/>
                <Button
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="3.5 - 3.30"/>
                <Button
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="4.5 - 9.30"/>
            </LinearLayout>
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="50"
                android:weightSum="100"
                android:orientation="vertical"
                android:layout_gravity="center">
                <Button
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="0.5 - 9.00"/>
                <Button
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="1.5 - 3.20"/>
                <Button
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="2.5 - 2.60"/>
                <Button
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="3.5 - 2.20"/>
                <Button
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="4.5 - 1.30"/>
            </LinearLayout>

        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="20dp">
            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text = "Double Chance"
                android:gravity="left"
                android:textStyle="bold"
                android:textSize="15sp"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:orientation="horizontal"
            android:weightSum="100"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:text = "Barcelona or Draw"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:text = "Sevilla or Draw"
                android:textSize="15sp"/>
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:gravity="center"
                android:text = "Barcelona or Sevilla"
                android:textSize="15sp"/>

        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:orientation="horizontal"
            android:weightSum="100"
            android:layout_height="wrap_content">
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:text="1.55"/>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:text="1.55"/>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="33"
                android:text="1.55"/>
        </LinearLayout>

    </LinearLayout>
</ScrollView>

1 个答案:

答案 0 :(得分:0)

使用BaseAdapter。它为项目视图提供了更强大的控制功能。在public abstract View getView (int position, View convertView, ViewGroup parent)范围内,您可以返回任何视图。