本文实例讲述了android编程实现listview点击展开和隐藏的方法。分享给大家供大家参考,具体如下:
代码较多,所以找关键点大家贴出来,相信大家看了之后很容易就明白的,
在listview的activity中
list<map<string, object>> listitems = new arraylist<map<string, object>>() myadapter = new myadapter(getapplicationcontext(), listitems); listview.setadapter(myadapter); listview.setonitemclicklistener(new onitemclicklistener() { @override public void onitemclick(adapterview<?> arg0, view arg1, int arg2, long arg3) { //点击的时候设置选中的编号,在自定义adapter中设置属性selectitem myadapter.setselectitem(arg2); //刷新listview myadapter.notifydatasetinvalidated(); } });
在自定义的myadapter的getview中,我的需要隐藏和展示的是个tablelayout默认是隐藏,定义属性int型selectitem和sign默认值均为-1,
tablelayout info = (tablelayout)convertview.findviewbyid(r.id.tablelayout1); if(position == selectitem){//被选中的元素 if(sign == selectitem){//再次选中的时候会隐藏,并初始化标记位置 info.setvisibility(view.gone); //没有被选中设置透明色 convertview.setbackgroundcolor(color.parsecolor("#00000000")); sign = -1; }else{//选中的时候会展示,并标记此位置 info.setvisibility(view.visible); //被选中设置背景颜色 convertview.setbackgroundcolor(color.parsecolor("#b0e2ff")); sign = selectitem; } }else {//未被选中的元素 info.setvisibility(view.gone); convertview.setbackgroundcolor(color.parsecolor("#00000000")); }
可以实现点击展示,再次点击隐藏,点击展示只会有一个元素展示
希望本文所述对大家android程序设计有所帮助。
如对本文有疑问, 点击进行留言回复!!
Codeforces C. A Cookie for You (模拟 / 分类 / 贪心) (Round #654 Div.2)
DialogFragment弹窗(带黑色透明背景和不带黑色透明背景)
网友评论