求助 activity里含有另一个activity控件,如何操作获得?

xiaolan11112222 2016-08-16 09:38:59
如下,因为功能需要我要在main_activity中往handler发消息,但我的 main_activity 消息里含有Activity1, Activity2,Activity3, Activity4里面的checkbox控件,此时会报错,我想实现以下功能怎么修改?本人小白,刚入门没多久,跪求好心大神帮忙!

Message msg = new Message();
msg.what = UPDATE4;
if (cbFlag == 1)
msg.obj = Activity1.cbAllLysis;//此为Activity1中的checkbox
if (cbFlag == 2)
msg.obj = Activity2.cbAllWashA;//此为Activity2中的checkbox
if (cbFlag == 3)
msg.obj = Activity3.cbAllWashB;//此为Activity3中的checkbox
if (cbFlag == 4)
msg.obj = Activity4.cbAllElution;//此为Activity4中的checkbox
handler.sendMessage(msg);
...全文
404 12 打赏 收藏 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaolan11112222 2017-08-02
  • 打赏
  • 举报
回复
引用 11 楼 csdn_faith 的回复:
楼主,虽然android上层是用java写的,但是android有自己的框架,最好不要脱离这个框架而做一些奇葩的设计。 1.在Activity A中启动Activity B,启动B的时候通过intent传数据,在B finish的时候传回结果,没有说在已经启动了,再在交互过程中再传数据。用广播机制理论上是可以,但是会显得你的代码非常蛋疼,因为基本没人这么做。 2.android的消息机制是传递序列化的数据,传个控件是什么鬼。你最多传递控件代表的数据,比如一个ACTION(int),或是一个String数据等。而且把一个Activity的view传到另一个Activity本身就没用
谢谢建议,楼主后来问题解决后一直没看这个帖子了,今天又回来看了一眼,觉得当时问的问题真的好白痴啊,你说的很对,建议给的很中肯,谢谢回复~
mimixi666 2016-08-19
  • 打赏
  • 举报
回复
引用 8 楼 xiaoji13 的回复:
[quote=引用 5 楼 mimixi666 的回复:] [quote=引用 3 楼 csdn_faith 的回复:] 我从来没有听说一个activity里包含另一个activity,也从来没听过android消息机制是传递整个控件的。楼主的这个设计真是奇葩,建议先补补android基础,看看四大组件,以及组件之间的通信,再来着手些代码。
+1 lz你如果是想实现activity之间的通讯,可以考虑用广播[/quote] 嗯好!不过已经解决了,找的实验室的大神用别的方式,不传控件,只传消息,谢谢回复哈[/quote] 其实我还想知道是怎么解决的?
csdn_faith 2016-08-19
  • 打赏
  • 举报
回复
楼主,虽然android上层是用java写的,但是android有自己的框架,最好不要脱离这个框架而做一些奇葩的设计。 1.在Activity A中启动Activity B,启动B的时候通过intent传数据,在B finish的时候传回结果,没有说在已经启动了,再在交互过程中再传数据。用广播机制理论上是可以,但是会显得你的代码非常蛋疼,因为基本没人这么做。 2.android的消息机制是传递序列化的数据,传个控件是什么鬼。你最多传递控件代表的数据,比如一个ACTION(int),或是一个String数据等。而且把一个Activity的view传到另一个Activity本身就没用
qq840727854 2016-08-18
  • 打赏
  • 举报
回复
其实 最简单的 办法 就是 创建 一个 类 里面 存对象,, 然后 全局 都可以访问 比如 class Memory{ public static View a; } Memory.a = ; 在另一个 就可以访问了 但是 这里需要你自己 手动 去释放 这个 控件 不然 就造成内存泄漏啦, 不过一般 情况下 是不会这样去使用的. 还有种,就想你上面 一样 使用 handler 抛出 一个 信息 然后 在 回调 中 进行处理 ,不过这种 就比较麻烦了. 还有很多 其他办法 的 就不多说了
xiaolan11112222 2016-08-18
  • 打赏
  • 举报
回复
引用 6 楼 qq_33899930 的回复:
用handler发消息啦。点击A的控件发消息给B处理相应界面和逻辑
谢谢回复,不过你说的不是我要问的
xiaolan11112222 2016-08-18
  • 打赏
  • 举报
回复
引用 5 楼 mimixi666 的回复:
[quote=引用 3 楼 csdn_faith 的回复:] 我从来没有听说一个activity里包含另一个activity,也从来没听过android消息机制是传递整个控件的。楼主的这个设计真是奇葩,建议先补补android基础,看看四大组件,以及组件之间的通信,再来着手些代码。
+1 lz你如果是想实现activity之间的通讯,可以考虑用广播[/quote] 嗯好!不过已经解决了,找的实验室的大神用别的方式,不传控件,只传消息,谢谢回复哈
xiaolan11112222 2016-08-18
  • 打赏
  • 举报
回复
引用 3 楼 csdn_faith 的回复:
我从来没有听说一个activity里包含另一个activity,也从来没听过android消息机制是传递整个控件的。楼主的这个设计真是奇葩,建议先补补android基础,看看四大组件,以及组件之间的通信,再来着手些代码。
谢谢建议,我确实是小白一枚,刚着手,老师就让我编程项目了也是没办法,只能边学编积累了。
liu_yifang 2016-08-18
  • 打赏
  • 举报
回复
用handler发消息啦。点击A的控件发消息给B处理相应界面和逻辑
mimixi666 2016-08-18
  • 打赏
  • 举报
回复
引用 3 楼 csdn_faith 的回复:
我从来没有听说一个activity里包含另一个activity,也从来没听过android消息机制是传递整个控件的。楼主的这个设计真是奇葩,建议先补补android基础,看看四大组件,以及组件之间的通信,再来着手些代码。
+1 lz你如果是想实现activity之间的通讯,可以考虑用广播
xiaolan11112222 2016-08-17
  • 打赏
  • 举报
回复
现在问题是 这些checkbox 在不同的activity里,而我要在 main_activity里用这些其他activity的控件,报错呀。 msg.obj = Activity1.cbAllLysis; 这句就报错了,原因是Activity1.cbAllLysis不在 main_activity,我不知道怎么解决,提示是让我把Activity1.cbAllLysis变成staitic,可是 控件可以设置成static吗?
ink_s 2016-08-17
  • 打赏
  • 举报
回复
1,2,3,4呀 1代表1的控件,2代表2的控件 。。。。。。 你收到消息是1就是对1的控件操作嘛 。。。。
csdn_faith 2016-08-17
  • 打赏
  • 举报
回复
我从来没有听说一个activity里包含另一个activity,也从来没听过android消息机制是传递整个控件的。楼主的这个设计真是奇葩,建议先补补android基础,看看四大组件,以及组件之间的通信,再来着手些代码。

80,490

社区成员

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

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