有些事情我没有得到,我正在寻求帮助来理解这里发生的事情。
我有一个自定义列表适配器(只是扩展了BaseAdapter),我已成功使用它来生成和显示列表。现在我想在列表底部添加一个静态页脚。在查看了许多资源(特别是this one)后,我逐渐意识到我不愿意使用XML,并在名为devices_list.xml的文件中设置以下xml布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout android:id="@+id/bottom_control_bar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
<ToggleButton android:id="@+id/bottom_control_toggle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textOff="Filter Favourites OFF"
android:textOn="Filter Favourites ON"/>
</LinearLayout>
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_above="@id/bottom_control_bar">
</ListView>
<TextView android:id="@android:id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/main_empty_list"
android:layout_above="@id/bottom_control_bar"/>
</RelativeLayout>
对包含列表的活动进行一些调整后,我运行了代码。我看到我的页脚,(以及作为所有内容的父项的标签小部件),但列表所在的区域是空的。
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
this.setContentView(R.layout.devices_list);
db = new DbManager(this);
db.open();
AllCur = db.fetchAllDevices();
startManagingCursor(AllCur);
list = new DeviceListAdapter(this, AllCur); //make my custom list adapter
setListAdapter(list);
}
有没有办法将我的xml中声明的ListView小部件与我的DeviceListAdapter相关联?现在我很清楚,我不完全确定这是如何工作的。任何澄清的帮助都将非常感激。
答案 0 :(得分:1)
您同时将ListView
和TextView
设置为android:layout_above="@id/bottom_control_bar"
,这意味着TextView
将与ListView
重叠。并且,您已经说过ListView
身高0dip
,这将是一个极短的列表。
我会将ListView
定义为位于TextView
之上并锚定在屏幕顶部(android:layout_alignParentTop="true"
)。
有没有办法连接到 在我的xml中声明的ListView小部件 使用我的DeviceListAdapter?
您已经致电setListAdapter()
。