0

我是 android 的新手,正在开发我的第一个个人日记应用程序。现在我在 Listview 中遇到问题,我在一个布局中有一个 Imagebutton,我想表现得像一个标题,我在另一个布局中有一些 TextView,我表示为与数据库绑定的 listview。现在的问题是,我从数据库中获得的行数与生成的按钮数一样多,这实际上是我不想要的。我正在使用列表活动从文本视图中生成列表视图。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="2dp"
    android:layout_weight="1"
    android:orientation="vertical"
    android:padding="2dp"
    android:weightSum="2" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/detail_title_bar_2"
        android:orientation="horizontal"
        android:layout_marginBottom="5dp" >

        <ImageButton
            android:id="@+id/btnadd"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_gravity="bottom"
            android:src="@drawable/add" />
    </LinearLayout>

 <LinearLayout
            android:layout_width="90dp"
            android:layout_height="wrap_content"
            android:background="@drawable/detail_title_bar_2"
            android:orientation="vertical"
            android:paddingRight="10dp" >

            <TextView
                android:id="@+id/txtday"
                style="@style/Title_day"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right"
                android:layout_marginBottom="-10dp"
                android:includeFontPadding="false"
                android:verticalSpacing="0px" />

            <TextView
                android:id="@+id/txtmonth"
                style="@style/Title_Month"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right"
                android:layout_marginBottom="-10dp"
                android:includeFontPadding="false"
                android:verticalSpacing="0px" />

            <TextView
                android:id="@+id/txtyear"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right" />

            <TextView
                android:id="@+id/txttime"
                style="@style/Title_time"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right" />
        </LinearLayout>
</LinearLayout>
4

2 回答 2

0

据我了解您的问题,您有一个列表视图,其中填充了从数据库加载的条目,并且您希望列表顶部有一个按钮来添加新项目?

然后你可以使用 addHeaderView() 函数。将包含图像按钮的布局定义为 xml 布局文件,例如 list_header_view.xml 并将其添加到您的列表视图中:

View headerView = (View)inflater.inflate(
            R.layout.list_header_view, null);

listview.addHeaderView(headerView);

list_header_view.xml 可以包含:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/detail_title_bar_2"
    android:orientation="horizontal"
    android:layout_marginBottom="5dp" >

    <ImageButton
        android:id="@+id/btnadd"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_gravity="bottom"
        android:src="@drawable/add" />
</LinearLayout>
于 2013-05-09T21:06:25.083 回答
0

不要害怕将其用作单独的组件。如果你使用ListView得当,它不会是低效的。

这是 Romain Guy 的一些如何使用ListView'sGoogle IO 的教程。它持续超过50分钟,但它是值得的。 Google I/O 2010,ListView 的世界

关键部分是关于重用创建的部分ListView而不是创建新的部分。

View's然后有一些关于在您的getView()方法中查找的有用信息。findViewById()方法类似于在树中搜索 - 通过您的Activity布局,然后是子级,直到View找到您要查找的内容。这对设备来说可能很难。因此他们建议使用一个名为 的静态类ViewHolder来查找布局的一部分仅保存一次的位置。不是在每次通话中getView()

于 2013-05-09T21:30:17.113 回答