同一列表项中的多个TextView

时间:2012-11-02 09:23:34

标签: android

我正在使用带有数组适配器的ListView来显示多个列表项。我希望根据picture

在列表项中添加多个TextView

我目前正在使用看似不合适的线性布局......相对布局会帮助我实现这一目标吗?

示例代码或教程链接很酷

干杯 ListView xml

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

    <ListView
        android:id="@+id/listViewTest"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

ArrayAdapter 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="wrap_content" >


    <ImageView
        android:id="@+id/icon"
        android:layout_width="wrap_content"
        android:layout_height="89dp"
        android:layout_marginLeft="4px"
        android:layout_marginRight="10px"
        android:layout_marginTop="4px"
        android:layout_weight="0.34"
        android:src="@drawable/ic_launcher" >

    </ImageView>


    <TextView
        android:id="@+id/label"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:layout_weight="0.97"
        android:gravity="center"
        android:text="@+id/label"
        android:textSize="30dp" >

    </TextView>

</LinearLayout> 

我正在尝试使用eclipse中的图形布局选项卡在现有textView下添加另一个textView但是我的noobieness正在阻碍

4 个答案:

答案 0 :(得分:0)

关注链接。它会帮助你..

android Multiple selection ListView & Textview

http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/

列表操作的Main.xml

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

        <ListView
            android:id="@android:id/list"
            android:layout_width="match_parent"
            android:layout_height="785dp"
            android:choiceMode="multipleChoice" >
        </ListView>
    </LinearLayout>

和Row.xml一样,..

<?xml version="1.0" encoding="utf-8"?>

<TableRow>

    <TextView
        android:id="@+id/StudNo"
        android:layout_width="50px"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:padding="5px" />

</TableRow>
  <TableRow>
    <TextView
        android:id="@+id/StudNo"
        android:layout_width="50px"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:padding="5px" />

</TableRow>


  </TableLayout>

并尝试使用自定义代码..

答案 1 :(得分:0)

链接的图片只有两个TextViews一个在另一个之下。如果您使用 2 TextViews,则垂直LinearLayout应该可以解决问题。但是,如果您打算在Views内使用两个以上ListItem,那么我建议您使用Relative Layout,因为它可以更灵活地保存多个子视图,当它到来时将它们相互对齐。

您可以按照Google提供的非常简单的教程进行操作: Relative Layout

答案 2 :(得分:0)

此链接在单个列表视图中使用多个文本...

http://publicstaticdroidmain.com/2011/12/building-a-custom-multi-line-listview-in-android/

使用以下代码..

<?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="vertical" >

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical|center_horizontal"
    android:text="Custom ListView Example" />

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

</LinearLayout>

<?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="vertical"
android:paddingBottom="10dip"
android:paddingLeft="10dip"
android:paddingTop="10dip" >

<TextView
    android:id="@+id/name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="#C20000"
    android:textSize="14sp"
    android:textStyle="bold" />

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

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

</LinearLayout>

答案 3 :(得分:0)

为包含两个textview的列表项创建xml布局

        **listItem.xml**

    <?xml version="1.0" encoding="utf-8"?>
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:orientation="horizontal"
            android:gravity="center"
            android:layout_height="fill_parent" >
            <TextView
                android:id="@+id/textview1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textColor="@android:color/black"

                android:gravity="center"
                android:text=""
                android:textAppearance="?android:attr/textAppearanceMedium" />
            <TextView
                android:id="@+id/textview2"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textColor="@android:color/black"

                android:gravity="center"
                android:text=""
                android:textAppearance="?android:attr/textAppearanceMedium" />

        </LinearLayout>

///*now in set this layout in your listview using Adapter as following*/
        mlistview.setAdapter(new ArrayAdapter<String>(this,
                R.layout.spinneritem, StringArray) {

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                View v = null;
                if (v == null) {
                    if (DiscountActivity.this != null) {
                        LayoutInflater vi = (LayoutInflater) DiscountActivity.this
                                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                        v = vi.inflate(R.layout.listItem, null);
                    }
                }

                TextView txtview1 = (TextView) v.findViewById(R.id.textview1);
                TextView txtview2 = (TextView) v.findViewById(R.id.textview2);

                txtview1.setText("textview1");
                txtview2.setText("textview2");

                v.setTag(campaign);
                return v;
            }


        });