在listview的前面或後面添加布局控制元件
在開發中我們可能會遇到這樣的需求 在listview最下面新增一個按鈕 但是這個按鈕不是一直顯示在螢幕上
它就像listview 最後一個view 根據使用者的移動來顯示 應該怎麼實現呢 這裡要用到一個方法
ListView listView = this.getListView();
Button buttonFooter = new Button(this);
buttonFooter.setText("下面的按鈕");
buttonFooter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
listView.addFooterView(buttonFooter);
如果你想在下面新增更加複雜的控制元件怎麼辦呢 這個時候我們可以定義一下需要新增控制元件的佈局檔案
LayoutInflater infla = LayoutInflater.from(this);
View footView = infla.inflate(R.layout.more_button, null);
ListView listView = this.getListView();
listView.addFooterView(footView, null, true);
如果想在它前面新增用addHeaderView 這個方法就可以
===================================================================
ListView 實現更多按鈕
- view plaincopy to clipboardprint?
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:gravity="center_horizontal"
- android:padding
- android:layout_height="fill_parent">
- <TextView
- android:id="@id/android:empty"
- android:layout_width="wrap_content"
- android:layout_height="fill_parent"
- android:gravity="center"
- android:padding="5dp"
- android:text="Loading more ..."/>
- </LinearLayout>
- publicclass MoreListTest extends ListActivity {
- private ListView mListView;
- private ArrayList<String> mItems;
- private ArrayAdapter<String> mAdapter;
- privateboolean loadingMore = false;
- privateint itemsCount = 15; //新新增的資料個數
- @Override
- protectedvoid onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- /* 新增初始顯示的資料 */
- addData();
- mListView = getListView();//獲得listview物件
- /* 將footview的佈局轉換成View物件*/
- View foot = ((LayoutInflater) this
- .getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(
- R.layout.foot, null, false);
- /* 給footview新增點選事件監聽器*/
- foot.setOnClickListener(new View.OnClickListener() {
- @Override
- publicvoid onClick(View v) {
- loadingMore =true;
- for (int i = 0; i < itemsCount; i++) {
- mItems.add("new "+i); //新增資料
- }
- mAdapter.notifyDataSetChanged(); //通知介面卡重新適配
- }
- });
- /* 給listview新增footview*/
- mListView.addFooterView(foot);
- mAdapter = new ArrayAdapter<String>(this,
- android.R.layout.simple_list_item_1, mItems);
- /* listview新增介面卡*/
- mListView.setAdapter(mAdapter);
- }
- privatevoid addData() {
- mItems = new ArrayList<String>();
- for (int i = 0; i < 5; i++) {
- mItems.add(i+"");
- }
- }