关于ListView,算是android中比较常见的控件,在ListView我们通常需要一个模板,这个模板指的不是住模块,而是配置显示在ListView里面的东西,今天做项目的时候发现想要添加一个ImageView监听方法,发现崩了,也许是好久没有动ListView竟然忘了不能直接在主UI的xml文件里面调用其他xml文件的控件,哪怕ListView用的是这个xml文件。
【错误示范】:
直接调用ImageView这个控件是ListView的控件,直接在非主控View java类文件调用,直接崩,之前还不知道这个问题。
msg=(ImageView).findViewById(R.id.msg); msg.setOnClickListener(new OnClickListener() { } });
【如何获取】:
public class CallListen implements OnItemClickListener{ @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { msg=(ImageView)view.findViewById(R.id.msg); msg.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } } } }
在ListView监听方法里面使用控件的监听方法,其中最重要的是点击ListView获取到了里面所有控件的父类View
这样的话就可以通过 msg=(ImageView)view.findViewById(R.id.msg);获取到我们的控件了,这里面的view至关重要,这里面就涉及到一个知识,假如我这个activity setcontentview不是当前我想要使用控件的View怎么办?
LayoutInflater作用是将layout的xml布局文件实例化为View类对象。
获取LayoutInflater的方法有如下三种:
LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.main, null );
LayoutInflater inflater = LayoutInflater.from(context); (该方法实质就是第一种方法,可参考源代码) View layout = inflater.inflate(R.layout.main, null );
LayoutInflater inflater = getLayoutInflater();(在Activity中可以使用,实际上是View子类下window的一个函数) View layout = inflater.inflate(R.layout.main, null );
|
这时候可能会疑惑:
setContentView 和Inflate
区别:
setContentView()一旦调用, layout就会立刻显示UI;而inflate只会把Layout形成一个以view类实现成的对象,有需要时再用setContentView(view)显示出来。一般在activity中通过setContentView()将界面显示出来,但是如果在非activity中如何对控件布局设置操作了,这就需要LayoutInflater动态加载。
相关推荐
Android ListView里控件添加监听方法的实例详解 关于ListView,算是android中比较常见的控件,在ListView我们通常需要一个模板,这个模板指的不是住模块,而是配置显示在ListView里面的东西,今天做项目的时候发现...
android ListView子控件监听
本例通过android中接口回调,实现listview内部控件的点击事件获取与处理。具体实现原理可查看我的博客:http://blog.csdn.net/u013318697/article/details/50615129
下面小编就为大家带来一篇ListView-添加item的事件监听实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Android listview适配器以及提升listview的效率。这是一个较标准的写法,listview的适配器,以及单击,长按的监听,或者listview里面其他控件的监听。
ListView中Item里面子控件的监听事件
通过自定义Checkable控件,来实现点击ListView中的Item来监听其中的cheakbox.体验效果更好
android控件运用,listview的底部监听方法
在Android中使用ListView ListAcitivity的样例-附代码,源代码...得到 ListView 控件里面包含所有控件各自的事件,并为其设置事件监听器; 4.长按时如何得到所触发的项,并进行相应的操作,实现长按事件的点击事件。
ScrollView嵌套ViewPager,ViewPager横向滑动时容易上下滚动处理; ScrollView嵌套ListView,ListView滚动事件处理,可滚动; ScrollView子控件获取焦点后自动置顶问题处理。...ListView滚动到顶或到底事件监听。
之前讲到了自定义Adapter传递给ListView时,因为ListView的View回收,需要注意当ListView列表项中包含有带有状态标识控件的问题。详情可见之前发的帖[url=自定义Adapter实现ListView带多选框等状态控件的注意事项 //...
最近有研究了QQ空间可拉伸头部控件的listView。如何去做呢?这里使用了自定义listView的方法。先看效果图吧: ![Markdown](http://i1.piimg.com/583828/b1a7d7c138fc2b49.gif) 究竟如何去做呢? 可以用的方法有: ...
listview item的选择监听 checkbox改变状态的方法,listview选择后 checkbox会自动改变状态,不需要点击checkbox来改变状态。当然点击checkbox会改变它自身的状态。这只是个小例子,item布局中可以是其他任意的控件...
之前看网上demo自定义日历采用的一般是在ondraw中绘制一个一个小格子,然后计算好后拼凑一下,这个是个好方法,会让界面很容易对齐,美观,并且可以实现小格子的很多效果,项目里碰到一个地方要添加日历,通过点击...
java移动开发+android+listView+EditText+实现搜索ListView功能,基于TextWatcher的onTextChanged,beforeTextChanged,afterTextChanged进行搜索功能的函数filterData的执行,并在合适的位置如:onCreate中为编辑...
实现QQ空间上下拉刷新或者加载更多内容,listView控件监听有四个,代码里面有说明。
android ListView Button 等控件强行获取焦点导致 item监听无效的解决办法 ,利用ListView 显示多个不同类型的item
那你现在肯定已经在listview 的item里面放了两个控件吧,假如是textview吧,那你就首先要给listview添加一个OnItemClickListener来监听你点击了那个item,在这个OnItemClickListener里面有个onItemClick方法,...
本实例是自定义的ListView,每个listitem中的控件都可以添加监听事件。并且,仿照QQ左滑效果。希望能对初学者提供帮助。