我是android&的新手开发我的第一个个人日记应用程序。 现在我在Listview中遇到问题,我在一个布局中有一个Imagebutton,我想表现得像一个标题,我在另一个布局中有一些TextViews,我表示为listview,它们与数据库绑定。现在的问题是,我从数据库中获得了很多行,因为生成了许多实际上我不想要的按钮。我正在使用List Activity从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>
答案 0 :(得分: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>
答案 1 :(得分:0)
不要害怕将其用作单独的组件。如果您正确使用ListView
,则效率不高。
以下是一些教程如何使用来自Google IO的ListView's
,由Romain Guy提供。它持续超过50分钟,但它是值得的。
Google I/O 2010, The world of ListView
关键部分是重用ListView
的创建部分而不是创建新部分。
然后有一些关于在View's
方法中查找getView()
的有用信息。 findViewById()
方法就像在树中搜索一样 - 通过Activity
布局,然后是孩子,直到找到你想要的View
。这可能对设备来说很难。因此,他们建议使用名为ViewHolder
的静态类来查找布局的某些部分只保留一次的位置。不是getView()