ListView添加底部按钮的方法
2012-08-13 10:38
127 查看
在开发中我们可能会遇到这样的需求 在listview最下面添加一个按钮 但是这个按钮不是一直显示在屏幕上
它就像listview 最后一个view 根据用户的移动来显示 应该怎么实现呢 这里要用到一个方法:
这里正确的作法是把整个父组件全部添加到ListView中,而不是只添加一个Button,虽然你只需要这一个Button,代码如下:
我这里对mLoadMoreAppsListener监听器的处理方法是一个空方法,你可以根据需要定制。
最后,我这种处理方式也不是最佳的方式,你要是有好的方法,欢迎交流。
它就像listview 最后一个view 根据用户的移动来显示 应该怎么实现呢 这里要用到一个方法:
Button buttonFooter = new Button(this); buttonFooter.setText("下面的按钮"); buttonFooter.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); listView.addFooterView(buttonFooter);这种方式比较简单,但是需要注意的是,这里添加的Button按钮是一个独立的组件,没有父组件,但是有时我们有更复杂需求,要自定义复杂的控件,因此你想要添加的这个Button或者TextView可能不是独立的,它处在一个XML文件中。这种情况下的处理方式就和上面的不一样了,如果用上面的方式直接添加的话,就会报错。下面是来自StackOverFlow的错误案例:
View view mInflater.inflate(R.layout.list_load_more_row, null); TextView footer = (TextView) view.findViewById(R.id.loadMore); getListView().addFooterView(footer);这样处理报告的错误是:
08-13 10:21:09.990: E/AndroidRuntime(3512): at android.widget.ListView.clearRecycledState(ListView.java:522)更多信息,请移步:http://stackoverflow.com/questions/3227182/android-adding-footer-to-listview-addfooterview/11927539#11927539
这里正确的作法是把整个父组件全部添加到ListView中,而不是只添加一个Button,虽然你只需要这一个Button,代码如下:
// add footer view(search more button) for app list View footerView = getLayoutInflater().inflate(R.layout.search_footer, mContentList, false); LongButton mSearchMoreBtn = (LongButton) footerView .findViewById(R.id.searchmore_btn); mSearchMoreBtn.setText(R.string.search_moreapp);//在线搜索 mSearchMoreBtn.setBackgroundResource(R.drawable.btn_long_selector); mSearchMoreBtn.setOnClickListener(mSearchMoreBtnListener); footerView.setOnClickListener(mLoadMoreAppsListener); mContentList.addFooterView(footerView);监听器的代码:
OnClickListener mSearchMoreBtnListener = new OnClickListener() { @Override public void onClick(View arg0) { saveUserLog(4); Intent i = new Intent(getApplicationContext(), SearchedResultActivity.class); i.putExtra("key", mSearchInput.getText().toString().trim()); startActivityForResult(i, REQUEST_SEARCH_RESULT); } };
我这里对mLoadMoreAppsListener监听器的处理方法是一个空方法,你可以根据需要定制。
最后,我这种处理方式也不是最佳的方式,你要是有好的方法,欢迎交流。
相关文章推荐
- view的空指针异常,listview加载数据底部添加按钮
- ListView底部添加加载更多按钮实现数据分页
- Android Demo之旅 ListView底部添加加载更多按钮实现数据分页
- android 让一个控件按钮居于底部的几种方法
- Repeater控件中添加删除与修改按钮方法
- Extjs grid添加一个图片状态或者按钮的方法
- listview底部添加"更多"button
- 给按钮添加图片的两种方法
- VC为按钮控件添加图片的方法
- NavigationController 上面添加按钮两种方法
- 如何在listView中添加置顶按钮(无特效版)
- Android中判断listview是否滑动到顶部和底部方法
- 给ubuntu 12.04 添加显示桌面按钮的方法
- iOS--- UITableView 底部添加按钮
- 关于自定义adapter中添加按钮,listview不能点击
- 在Activity中响应ListView内部按钮的点击事件的两种方法
- 【收藏用】切勿转载--为ListView每个Item上面的按钮添加事件
- WINCE下对话框中添加OK按钮的方法
- 判断ListView滚动到达底部的方法
- listview禁止双击一条之后选中复选框按钮的方法