我目前在 Monodroid 中遇到了 Android ListView 的问题。
我使用这样的自定义适配器初始化和设置列表:
ListView setting_listview = new ListView(this);
//Components and layoutparameters is done here
RelativeLayout bottom_view = new RelativeLayout(this);
//Components/layoutparameters is done here
setting_listview.AddFooterView(bottom_view);
TTListAdapter adapter = new TTListAdapter(this, listdata, Resource.Layout.datatable_list_item,secList);
setting_listview.Adapter = adapter;
现在,当我尝试在另一段代码中检索适配器时,如下所示:
TTListAdapter adapter = (TTListAdapter)setting_listview.Adapter;
我得到以下异常:System.InvalidCastException: Cannot cast from type HeaderViewListAdapter to TTListAdapter
. 显然,Adapter 属性现在返回一个 HeaderViewListAdapter,而不是在初始化期间设置的预期 TTListAdapter。
如果我在初始化期间不使用AddFooterView
,它将返回TTListAdapter
在初始化期间设置的原始文件。
为什么 Adapter 属性在被调用HeaderViewListAdapter
后返回 a 而不是最初设置的 Adapter,AddFooterView
如果发生这种情况,我该如何检索原始 Adapter?
编辑:改写问题的一部分以使其更清晰