如何将linearlayout膨胀为一行?

时间:2011-07-19 15:32:51

标签: android

我正在尝试从数据库填充项目列表。 我想将linearLayout膨胀为行而不是常规行来显示imageView。

这是我的XML for my row.xml linearLayout。

  ?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="wrap_content"
    android:orientation="horizontal"
android:padding="4dip">
      <ImageView
    android:id="@+id/icon"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_alignParentTop = "true"
    android:layout_alignParentBottom = "true"
    android:layout_marginRight="4dip"
           />
           <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        >

        <TextView
        android:textColor="#15317E"
            android:id="@+id/title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center_vertical"
            android:textStyle="bold"
            android:maxLines="1"
            android:textSize="21dip"
            android:ellipsize="end"
            />




        </LinearLayout>
             </LinearLayout>

现在我在这里使用SimpleCursorAdapter来显示list.xml中的布局

public void fillData(){
            helper.open();
            Cursor task = helper.fetchAllTask();
            startManagingCursor(task);

            String[] from = new String[]{TaskHelper.KEY_TITLE};
            int[] to = new int[]{R.layout.row};

            SimpleCursorAdapter taskAdapter = new SimpleCursorAdapter(this, R.layout.list, task, from , to);
            setListAdapter(taskAdapter);

        }

我不确定我是否正确行事,如果有人熟悉这一点。请告诉我。 感谢

在我的fillData()中,我想将imageView作为图标显示在其中。但是每次我添加一个项目时都不会出于某种原因填充。也许这是一种更好的方式,我可以重建整个列表。

2 个答案:

答案 0 :(得分:1)

尝试:

String[] from = new String[]{TaskHelper.KEY_TITLE};
int[] to = new int[]{R.id.title};
SimpleCursorAdapter taskAdapter = new SimpleCursorAdapter(this, R.layout.row, 
    task, from , to);

答案 1 :(得分:0)

  1. 使用MarvinLabs回答。
  2. 确保光标“任务”不为空。
    • 如果在后台线程中调用setListAdapter(taskAdapter)
    • ,请尝试在GUI线程中调用fillData
    • 之后,尝试使用ListView的'invalidate'或'postInvalidate'方法