我有一个类(A_Main.java)扩展ArrayAdapter.我将ListVIEw设置为使用A_Main,因为它是listadapter.在A_Main.getVIEw()内部,我给视图充气,以获取每行的ListVIEw小部件.每行包含TextVIEw,CheckBox和Imagebutton.单击Imagebutton时,我播放与TextVIEw关联的歌曲.我不想在ListVIEw上使用onItemClickListener(),因为它太容易弄乱滚动并开始播放新歌.
当我在一个新行中单击一个Imagebutton时,我需要取消当前正在播放的歌曲的Imagebutton,并使新的一个hilite.我想这样做的方法是在Imagebutton的onClickListener()中膨胀视图,并在列表中的每个按钮取消hilite,然后,hi-lite正在播放的那个.我不确定最好的办法.我可以在每个Imagebutton ID的A_Main中保留一个成员列表,因为getVIEw()会迭代它们并直接从onClickListener()引用ID而不会导致内存泄漏吗? getVIEw()完成后,这些ID是否会消失?关于替代方法的任何想法?
解决方法:
编辑:
解决方案可能很简单就像这样全局采用布尔数组
private final boolean[] selectedstates;
并在构造函数中使用列表的大小初始化它
selectedstates= new boolean[yourList.size()];
在onclick听众的外面设置这样
yourbutton.setSelected(selectedstates[position]);
我希望这能帮到您
尝试这个
使用具有两个不同状态图像的自定义选择器进行选择和非选择
<?xml version="1.0" enCoding="utf-8"?><selector xmlns:androID="http://schemas.androID.com/apk/res/androID"> <item androID:drawable="@drawable/pause_button" androID:state_selected="true" /> <item androID:drawable="@drawable/play_button" /></selector>
1.创建一个全局变量
ImagevIEw prevIoUs;
在您的自定义适配器中,并在您将获取内容的构造函数中初始化它
prevIoUs=new ImageVIEw(context);
添加适配器getVIEw()方法,您可能会为ImagevIEw添加onclickListener
这样做
imagPlay.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { ImageVIEw current=((ImageVIEw)v); current.setSelected(true); prevIoUs.setSelected(false); prevIoUs=current; } });
这会有效,我很自信因为我在我的应用中使用过它.我希望这能帮到您
总结以上是内存溢出为你收集整理的从Android中的OnClickListener扩充ListView行?全部内容,希望文章能够帮你解决从Android中的OnClickListener扩充ListView行?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)