我在我的主Activity中定义了一个按钮,它将说出一个字符串值。当我单击按钮时,它会说出字符串值。我还在另一个非Activity类(Kotlin CLASS)中定义了一个广播接收器。当接收到广播时,我想在主Activity中模拟按钮单击,以便我可以说出不同的消息。我在Android Studio中使用Kotlin。
我的所有代码都可以工作。我只需要知道如何从另一个类触发主活动按钮。
我希望这是可能做到的。
我试着从非活动类调用按钮callonclick()
,它使应用程序崩溃。
我可以从mainactivity类调用按钮callonclick()
,它工作得很好。
因此,我所做的是从另一个类调用mainActivity类中的clickButton()
函数。
在我的非活动类中,我有以下代码:
var mActivity = MainActivity()
mActivity.clickButton() // calling the onclick function in the Main act
字符串
上面的语句到达onclick函数,然后在执行btnSpeak!!.callOnClick()
语句时崩溃。
下面是mainactivity类中的onclick函数
public fun clickButton() {
println("IN ClickButton *********************************")
btnSpeak!!.callOnClick()
}
型
当我点击mainactivity类中的按钮时,onclick函数工作正常,并说出我的消息。
1条答案
按热度按时间wmomyfyw1#
据我所知,你想收到一个广播,一旦收到,你想点击一个按钮。
首先,您不能手动创建Activity的新示例。Activity仅由Intent触发。
但是您已经在
MainActivity
内部,因此您不需要导航到它或创建Activity的新示例来访问其方法。您所需要的是:
1.创建
interface
:字符串
1.在你的活动中实现它:
型
1.然后,将listener作为receiver constructor参数传递:
型
1.在
MainActivity
中,在注册接收器的地方将this
作为构造函数参数传递:型