2011-09-25 101 views
1

我創建了ListView並添加了標題addHeaderView,然後我在我的ListActivity中調用了setListAdapter。任何想法如何動態addFooterView我叫setListAdapter後?如何動態添加頁腳視圖

答: 我加了兩個頭視圖和頁腳視圖(實際上按鈕)進入我的列表視圖, 但他們兩人我裹成的FrameLayout使用WRAP_CONTENT高度,然後當我不需要爲標題按鈕顯示我只是setVisibility(View.GONE)和FrameLayout包裝到0高度和vissualy它不可見(相同的效果,如果我會調用removeHeaderView),如果我需要再次顯示它我setVisibilty(View.VISIBLE)和它如圖(如addHeaderView同樣的效果 - 這調用設置列表適配器後,當然是不可能的)

這裏討論: Hide footer view in ListView?

+0

看看我editrd答案。試試這個,讓我知道發生了什麼。 – user370305

回答

4
View header = getLayoutInflater().inflate(R.layout.header, null); 
View footer = getLayoutInflater().inflate(R.layout.footer, null); 
ListView listView = getListView(); 

listView.addHeaderView(header); 
listView.addFooterView(footer);  
setListAdapter(new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_single_choice, 
      android.R.id.text1, names)); 
+1

09-25 18:43:52.953:ERROR/AndroidRuntime(229):java.lang.IllegalStateException:無法將頁腳視圖添加到列表中 - setAdapter已被調用。 – webaloman

+0

@webaloman - 看看我編輯的答案。試試這個,讓我知道發生了什麼。 – user370305

+0

只要記住腳註和標題也被索引爲一個列表元素。因此,如果您單擊頁腳下方列表中的第一個項目,該項目索引將爲1,但不是0。 –

0

你必須做這樣的

View header = (View)getLayoutInflater().inflate(R.layout.header,null); 

SimpleAdapter myAdapter=new SimpleAdapter(this,myList,R.layout.transactionvalues, 
new String[] {"transaction_date_time","user_name","site_name","machine_name"},new int[] {R.id.Date_Time,R.id.User,R.id.Site,R.id.Machine}); 

if(header == null){ 
    lst.removeHeaderView(header); 
}else 
{ 
    lst.addHeaderView(header,null,false); 
} 

lst.setAdapter(myAdapter); 
相關問題