Android自定义view与activity的传值

本文探讨了在Android开发中自定义View与Activity之间的数据传递问题。作者在实践中遇到挑战,即如何在自定义View“转盘”停止旋转时将结果传给Activity中的TextView。文章分享了解决方案,使用线程结合广播的方式进行跨组件通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android自定义view与activity的传值

昨晚在写团队项目的时候,遇到一个问题,直到今天早上才解决。。。即在自定义view“转盘”结束转动后获取结果的处理中,我是想吧值传到activity中的一个textview中的,但我的自定义view类不是activity的内部类,所以activity的属性不能共享,无法在转盘速度为0时获取到覆盖0度角的扇形所对应的字符串然后将其设置为textview的text,再者说,UI不能在子线程中更新,就算自定义view类是activity的内部类,也不能这么简单地更新UI。因为之前写过一个activity的内部自定义view类,所以觉得这次这样写很不方便,感觉view和activity的通信变得更复杂,但我觉得把它模块化再耦合会更好一点,毕竟这个类代码全部塞到activity中也不是很好。说到UI不能在子线程中更新,好吧如果我把这个更新放在主线程中,又有一个问题了:本身等待转盘速度变成0就是一个耗时操作,它的实现是通过画一个个扇形实现的,不断重复画,一遍画完然后速度减小(也就是扇形起始角增加变小),可见如果在activity主线程中等待的化,主线程十有八九会挂掉。今天早上解决了这个问题,起始不管自定义view是不是内部类,用线程+广播就好了,项目代码地址https://github.com/xiepeiliang/DecisionHelper

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值