【发布时间】:2010-04-12 06:13:19
【问题描述】:
目前我有一个扩展 ListActivity 类的类。我需要能够在列表上方添加一些始终可见的静态按钮。我试图从类中使用 getListView() 获取 ListView。然后我使用 addHeaderView(View) 在屏幕顶部添加了一个小布局。
头文件.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" >
<Button
android:id="@+id/testButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Income"
android:textSize="15dip"
android:layout_weight="1" />
</LinearLayout>
在设置适配器之前,我会:
ListView lv = getListView();
lv.addHeaderView(findViewById(R.layout.header));
这不会导致 ListView 发生任何事情,只是它是从我的数据库中填充的。上面没有任何按钮。
我尝试的另一种方法是将填充添加到 ListView 的顶部。当我这样做时,它成功地向下移动,但是,如果我在它上面添加任何内容,它会将 ListView 推过来。无论我做什么,当我使用 ListActivity 时,似乎都无法在 ListView 上方放置几个按钮。
提前致谢。
synic,我之前尝试过你的建议。为了理智,我又试了一次,但按钮没有显示。下面是活动的布局文件和我在 oncreate() 中实现的代码。
//我的listactivity我正在尝试将标题添加到
public class AuditActivity extends ListActivity {
Budget budget;
@Override
public void onCreate(Bundle savedInstanceState) {
Cursor test;
super.onCreate(savedInstanceState);
setContentView(R.layout.audit);
ListView lv = getListView();
LayoutInflater infalter = getLayoutInflater();
ViewGroup header = (ViewGroup) infalter.inflate(R.layout.header, lv, false);
lv.addHeaderView(header);
budget = new Budget(this);
/*
try {
test = budget.getTransactions();
showEvents(test);
} finally {
}
*/
// switchTabSpecial();
}
活动的Layout.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">
<ListView android:id="@android:id/list" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView android:id="@android:id/empty" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/empty" />
</LinearLayout>
【问题讨论】:
标签: android header listactivity