2 u014734740 u014734740 于 2016.02.06 21:35 提问

在一个activity里如何监听另一个xml里的控件的事件

比如我有两个xml:main.xml和main1.xml
我在一个activity里setcontentView(R.layout.main)
而我想在这个activity里监听main1.xml里一个button按钮的点击事件,我应该怎么做?
求大神指导。(试过了LayouInflater拿到了main1.xml里button的id,但是设置onclicklister后系统没有响应点击事件)

2个回答

leilba
leilba   Rxr 2016.02.06 22:30

直接绑定监听是做不到的,因为你的activity绑定的是main.xml不是main1.xml,但是你可以通过接口、广播或者eventbus等方式来监听,比如说你有activity2绑定了main1.xml,那么当main1.xml中的按钮被点击了之后,activity2发送一个广播,在activity接收这个广播。用fragment的话也一样可以使用广播的方式来间接监听。
还有使用LayouInflater获取main1.xml实际上是新建了一个view对象,这个和你所期望的那个显示出来的界面不是同一样对象,所以你监听的话是无效的。
android的广播的使用方式:android广播
android eventbus使用方式:android eventbus

leilba
leilba 回复caozhy: 过年在家,所以有时间多码码字
接近 2 年之前 回复
caozhy
caozhy 赞,总能看到你详细的回答
接近 2 年之前 回复
91program
91program   Ds   Rxr 2016.02.06 21:38

Activity 的生命周期决定了在一个 Activity 中时,另一个 Activity 无法运行,所以监控它没有什么意义。
如果想同时监控两个 Activity,建议使用 Service 来实现。

91program
91program 回复asagahe: fragment 的生命周期与 Activity 相似,你可以参考:http://blog.csdn.net/forever_crying/article/details/8238863
接近 2 年之前 回复
u014734740
u014734740 我想在一个fragment的CreatView里面监听另一个xml里面的控件的事件
接近 2 年之前 回复
u014734740
u014734740 如果是两个fragment呢?
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!