在不使用notifyDataSetChanged()方法,怎样选中Item中的内容

drawable文件夹中 需要创建的文件例如:   my_select.xml,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/my_checked" 
            android:state_enabled="true" android:state_selected="true"/>
    <item android:drawable="@drawable/my_def"/>

</selector>

my_checked:  选中效果图

my_def:  未选中效果图

需要注意的地方:

android:state_selected="true"

一定要是state_selected属性

layout文件夹中的Item布局文件中:Item布局文件是适配器Adapter中的子文件

在你需要选中的控件中添加一下代码

android:background="@drawable/course_select"
android:descendantFocusability="blocksDescendants"

然后在你的适配器中引用该布局文件就好了

时间: 2024-10-12 05:30:20

在不使用notifyDataSetChanged()方法,怎样选中Item中的内容的相关文章

iphone中点击input不能选中input中的内容

点击一个input,通过它的click事件选中这个input框中的内容,这个用jquery挺好实现的,但是有一个问题,在PC端和android手机上都可以让功能正常实现,在iphone上就没有效果了,后查了好多资料发现在iphone中可以这样写 <script> $(function(){ //$('input').focus(focustext) /*******用以下三行代码即可实现*******/ $('input').click(function(){ this.selectionSt

ListView点击或选中item改变背景

点击或选中ListView中的一项后,使item背景改变,失去焦点同样显示选中的背景,重新选中另外一项才刷新: 在Adapter中配置: public class MyAdapter extends BaseAdapter{ int mSelect = 0; //选中项 ...... public void changeSelected(int positon){ //刷新方法 if(positon != mSelect){ mSelect = positon; notifyDataSetCha

android如何在BaseAdapter内使用notifyDataSetChanged()方法以及线程的使用

有时候我们需要修改列表里的数据,并实时刷新,我们除了在在外部调用adapter.notifyDataSetChanged()方法来通知activity刷新,  如果在adapter内部有涉及到更新数据,删除或者增加数据,就可以直接在adapter内部调用notifyDataSetChanged()这个方法,前提是该listview绑定的数据有改变. 以下例子结合Handler,线程展示 public class MyAdapter extends BaseAdapter { private fi

Android源码与设计模式之notifyDataSetChanged()方法与观察者模式

BaseAdapter在调用notifyDataSetChanged()方法后,GridView就刷新了,下面从源码角度对此原理进行剖析. 首先进到BaseAdapter中查看其notifyDataSetChanged()方法,发现它调用了DataSetObservable的notifyChanged()方法 public abstract class BaseAdapter{ private final DataSetObservable mDataSetObservable = new Da

android使用notifyDataSetChanged()方法,listview数据没有更新

android使用notifyDataSetChanged()方法,发现adapter的数据更新了,但是ListView的内容没有更新? 查阅如下网站解决方案都没有解决: http://blog.csdn.net/williamz1980/article/details/5837998 http://15975604853.blog.163.com/blog/static/1182880352012710113831147/ 后来冷静一想,我遇到这个问题的情景跟他们的有所区别: 我的问题是从另个

奇葩问题:ListView中Item与Item中的Button不能单击问题

android中ListView是一个经常要用到的一个组件,用到该组件时经常会碰到ListView的Item和Item中的Button不能单击的问题. 本人在使用时同样也遇到过这样的情况,共有三种情况,总结如下: 情况一:焦点问题: 设置android:descendantFocusability="blocksDescendants"> 和android:focusable="false" 该情况比较常见,在网上都可以搜索到相关的解决办法,不在这过多的介绍,

ListView item中按钮点击实现删除

ListView item中按钮点击实现删除 在处理ListView 中item的按钮点击事件首先需要在item的根布局中添加 android:descendantFocusability="blocksDescendants"属性,否则item的点击事件会把其中image button的点击事件屏蔽掉 item的布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

安卓Android控件ListView获取item中EditText值

可以明确,现在没有直接方法可以获得ListView中每一行EditText的值. 解决方案:重写BaseAdapter,然后自行获取ListView中每行输入的EditText值. 大概算法:重写BaseAdapter.getView函数,用一个数组存储EditText中的值,根据position即数组下标,在getView中动态更新EditText和动态获取EditText中的值.因为ListView中的item是复用的,如果不动态清空或动态获取EditText中值,就会出现数据紊乱,或者没数

android ListView的item中Button(购物数量加减器)

1.临时保存每个item中的显示数量控件的text: HashMap<Integer,Interger> map = new HashMap<Integer,Integer>(); 使用map来保存每条item显示的数量值.EditText在BaseAdapter中的getView() 方法中去显示对应position的map中的值,如下: editText.setText(map.get(position)); 2. "-"和"+"添加点击