一个单选和多选供能我写了一千行代码!跪求方法

chaoyong918 2016-11-19 08:52:20


如上图所示,上面的选择是单选,选中是绿色背景白色字体,未选中是灰色背景黑色字体。
我用的TextView,具体有多少个选项未知,根据接口获取的,然后创建TextView。

已上功能我弄了一天!写了将近一千行代码!着实觉得自己死脑筋,不知道怎么去写了。
各位说说你们的看法,你们怎么写?哪位大神可以有空写写?
接口:http://www.aklshop.cn/mobile/rental/getparameter
数据:
{
"data": {
"livetype": [
"整租",
"合租",
"日租",
"写字楼",
"车位",
"其他"
],
"facility": [
"WIFI",
"洗衣机",
"空调",
"热水器",
"更多"
],
"fee": 10
},
"msg": "正常返回",
"code": 1
}
------------------------------------------------------------------------
PS:
livetype为单选
facility为多选
...全文
299 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tcmakebest 2016-11-21
  • 打赏
  • 举报
回复
1000行, 难道看不出里面大多是重复的代码吗
chaoyong918 2016-11-21
  • 打赏
  • 举报
回复
引用 4 楼 q849340003 的回复:
从你界面和json数组能想到的优化,第一个方案,比较笨一点的,用map把你text的状态保存起来,给你每一个text设置点击事件,点击的时候去改变map里面 每一个text对应的状态(同时根据map里面的状态设置ui,注意要先设置完状态再去更新当前点击的ui,直接去map 通过当前key取出 value),这样就实现了点击背景色改变和选中数据保存在内存。代码会比较多 第二个方案是,你写个自定义控件,把第一种方案的大量代码包起来,那么下次碰到这种需求直接拿过来可以用,优点就是写一次 以后可以复用,第一种代码基本不能复用
说的不清楚啊,我最后还要把这些按钮所在的数组下标传给后台的。
chaoyong918 2016-11-21
  • 打赏
  • 举报
回复
引用 2 楼 tcmakebest 的回复:
1000行, 难道看不出里面大多是重复的代码吗
是很多重复代码,但是我抽不出来。。。
chaoyong918 2016-11-21
  • 打赏
  • 举报
回复
引用 1 楼 qq_25412055 的回复:
你封装一个方法,传入text ,里面生成一个text,并设点击事件,点了之后变换背景颜色和字体颜色。。。。这为什么要写1000行。。
不懂啊,可以讲详细点么?
索吻的贼 2016-11-21
  • 打赏
  • 举报
回复
这个思路应该是和listview的思路是一样的,它就是一个变种的listview。思路很重要
blanks.w 2016-11-21
  • 打赏
  • 举报
回复
从你界面和json数组能想到的优化,第一个方案,比较笨一点的,用map把你text的状态保存起来,给你每一个text设置点击事件,点击的时候去改变map里面 每一个text对应的状态(同时根据map里面的状态设置ui,注意要先设置完状态再去更新当前点击的ui,直接去map 通过当前key取出 value),这样就实现了点击背景色改变和选中数据保存在内存。代码会比较多 第二个方案是,你写个自定义控件,把第一种方案的大量代码包起来,那么下次碰到这种需求直接拿过来可以用,优点就是写一次 以后可以复用,第一种代码基本不能复用
  • 打赏
  • 举报
回复
动态创建textview的时候就设置每个textview的点击事件,单选的就先清空一下所有的textview的选中状态,然后在改变点击的textview的背景颜色(这个地方可以封装,直接把textview当作参数,直接设置背景和字体颜色即可),多选的可以直接使用上面封装的方法去实现。
LoveWyf_ 2016-11-20
  • 打赏
  • 举报
回复
你封装一个方法,传入text ,里面生成一个text,并设点击事件,点了之后变换背景颜色和字体颜色。。。。这为什么要写1000行。。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧