android-ListView 最后一行添加控件

今天在做一个功能的时候,要求必须是在一个listview下,有一段提示行的文字,自己的那个listview的adapter用的是cursoradapter,这样的话,处理布局的灵活性就大打折扣了。最开始的想法是改变item的布局,然后在adapter中处理,保证在listview加载到最后一行的时候,控制item中添加的textview显示,实现提示效果。但是,这时候会面临很多的问题。比如,最后一行点击事件,最后一行的下划线等。

后来,想到了另外一种方法,就是不再adapter中添加,而是直接在listview中添加,这个很好的解决了问题。代码如下

/* Vanzo:zhangshuli on: Sat, 24 Jan 2015 16:21:40 +0000
 */
    private View mAddSlideItem;
    private TextView mSearchResult;
// End of Vanzo: zhangshuli

    public void onCreate1(Bundle icicle) {
        MmsLog.d(TAG,"onCreate");         initPlugin(this, getIntent());         sNeedRequery = true;          final Uri u = getIntent().getData();
        if (u != null && u.getQueryParameter("source_id") != null) {             gotoComposeMessageActivity(u);             return;
        }
        ContentResolver cr = getContentResolver();         mLayoutSearch = (RelativeLayout) findViewById(R.id.conv_second);
        mLayoutSearch.setVisibility(View.GONE); //得到想要添加的控件        mAddSlideItem = ((LayoutInflater) getSystemService(
                    Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.search_mms_result, null);                 mSearchResult = (TextView) mAddSlideItem.findViewById(R.id.search_result);         mSearchListView = (ListView) findViewById(R.id.list2);
        mSearchListView.setItemsCanFocus(true);
        mSearchListView.setFocusable(true);
        mSearchListView.setClickable(true);
//在末尾添加控件        mSearchListView.addFooterView(mAddSlideItem);        mTvEmpty = (TextView)findViewById(android.R.id.empty);         setTitle("");

        Contact.addListener(mContactListener);         mQueryHandler2 = new AsyncQueryHandler(cr) {
            protected void onQueryComplete(int token, Object cookie, Cursor c) {                 try {
                    if (searchProgressDialog != null && searchProgressDialog.isShowing()) {
                        searchProgressDialog.setDismiss(true);
                        searchProgressDialog.dismiss();
                    }
                } catch (IllegalArgumentException ex) {
                    MmsLog.d(TAG,"Dialog.dismiss() IllegalArgumentException");
                }

                if (mIsContentChanged) {
                    sWaitSaveDraft = false;
                    mIsContentChanged = false;
                }
                mIsQueryComplete = true;
                /// @}

                if (c == null) {
                    /// M: Add for OP09: @{ 

                mSearchListView.setFocusable(true);
                mSearchListView.setFocusableInTouchMode(true);
                mSearchListView.requestFocus();

                // Remember the query if there are actual results
                if (cursorCount > 0) {
                    SearchRecentSuggestions recent = ((MmsApp)getApplication()).getRecentSuggestions();
                    if (recent != null) {
                        recent.saveRecentQuery(searchString, getString(R.string.search_history, cursorCount, searchString));
                    }
                }

虽然你在这里增加了自己的控件,但是,如果你想刷新这个控件的状态,这时候你需要跟listview刷新类似,也就是每次都要

时间: 2024-10-27 16:56:38

android-ListView 最后一行添加控件的相关文章

Android: ListView的使用(列表控件)

当程序中有大量的数据需要展示时,就需要用到 ListView 啦.ListView 允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内,同时屏幕上原有的数据则会滚动出屏幕. 1.基本性质 (1)由于数组中的数据无法直接传递给ListView,我们需要借助适配器(Adapter)来完成.(2)Adapter有多种,需要根据ListView不同的使用情况选择不同的适配器.主要有两种ArrayAdapter / SimpleAdapter ListView的关键操作是制作一个符合要求的Adapt

Android开发之动态添加控件

动态添加TextView控件: 一:创建一个Android project项目 activity_main.xml文件: 1.用两个LinearLayout布局分别包裹一对TextView,EditText控件,将orientation设置为水平方向,EditText的hint属性可以实现水印效果,两个EditText用来控制显示(TextView控件数量)的行和列. 2. 用一个LinearLayout布局包裹Button按钮,在EditText控件输入完后,点击button按钮,就会自动生成

android 在布局中动态添加控件

第一步 Java代码 final LayoutInflater inflater = LayoutInflater.from(this); 第二步:获取需要被添加控件的布局 Java代码 final LinearLayout lin = (LinearLayout) findViewById(R.id.LinearLayout01); 第三步:获取需要添加的布局(控件) Java代码 LinearLayout layout = (LinearLayout) inflater.inflate( R

【Android进阶】关于ListView中item与控件抢夺焦点的那些事

在开发中,listview可以说是我们使用最频繁的控件之一了,但是关于listview的各种问题也是很多.当我们使用自定义布局的Listview的时候,如果在item的布局文件里面存在Button或者是CheckBox等控件以及其子类控件的时候,经常会碰到各种控件的点击事件冲突的情况,那么我们如何来处理Listview中这种控件之间焦点冲突的情况呢? 我们以item存在一个Button控件为例 首先,加入我们不设置任何关于焦点的属性,比如focus等,代码如下 @Override public

android 动态添加控件并实现每个子控件的点击事件

需求:我们要点击进入一家店铺,根据不同的店铺,显示不同条数的子条目 如:消毒间,洗菜间等...这些都是或多或少的,所以需要动态添加: 首先自定义View(linearLayout): package cn.qust.fang.widget; import io.vov.vitamio.MediaPlayer; import io.vov.vitamio.widget.MediaController; import io.vov.vitamio.widget.VideoView; import a

Android 在布局容器中动态添加控件

这里,通过一个小demo,就可以掌握在布局容器中动态添加控件,以动态添加Button控件为例,添加其他控件同样道理. 1.addView 添加控件到布局容器 2.removeView 在布局容器中删掉已有的控件 3.使用,来个小demo就明白了 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(save

Android 实现自定义多级树控件和全选与反选的效果

博文开始之前,首先要感谢大牛:(lmj623565791),本博文是在其博文http://blog.csdn.net/lmj623565791/article/details/40212367基础上进一步的修改而来. 本博文主要是利用ListView实现多级树控件,并通过CheckBox来对各节点的全选与反选的功能,首先来看一下效果: 对于多级树的显示其实就是通过数据中各个节点的关系,通过不同的缩进来达到树的效果.而数据中主要要把握id,父节点pId,name的关系,来显示其效果. 代码实现如下

Android高效率编码-细节,控件,架包,功能,工具,开源汇总,你想要的这里都有

Android高效率编码-细节,控件.架包,功能.工具,开源汇总 事实上写博客的初衷也并非说什么分享技术,毕竟咱还仅仅是个小程序猿.最大的目的就是对自我的知识积累.以后万一编码的时候断片了,也能够翻出来看看,这样子对自己也有优点,所以今天就汇总一下一些须要的东西.多图来了,加油! 一.游戏 小熊打字,我刚接触电脑练习打字的时候用到的 下载地址:http://download.csdn.net/detail/qq_26787115/9365721 二.色彩 这张颜色表上的颜色都太赞了 三.控件 1

【转】Android官方下拉刷新控件 SwipeRefreshLayout

今天在Google+上看到了SwipeRefreshLayout这个名词,遂搜索了下,发现竟然是刚刚google更新sdk新增加的一个widget,于是赶紧抢先体验学习下. SwipeRefreshLayout SwipeRefreshLayout字面意思就是下拉刷新的布局,继承自ViewGroup,在support v4兼容包下,但必须把你的support library的版本升级到19.1. 提到下拉刷新大家一定对ActionBarPullToRefresh比较熟悉,而如今google推出了