gpt4 book ai didi

android - 将信息从 EventListener 传回 Activity

转载 作者:行者123 更新时间:2023-11-29 22:30:48 29 4
gpt4 key购买 nike

我是 Android 的新手,一般来说是事件驱动代码。我没有在 Activity 中嵌入大量匿名事件监听器类来处理 onClick 事件等,而是定义了单独的类以保持代码整洁。然后我使用它们,例如像这样

myButton.setOnClickListener(new MyEventListener());

因此,当单击“myButton”时,MyEventListener 的 onClick 方法会执行一些操作。

我想知道最佳实践

a) 从事件监听器访问我的 Activity 中的内容。例如更改标签的文本。 onClick 事件接受一个 View ,但这是被单击按钮的 View ,因此如果标签不是我的按钮的子项,我就不能使用 findViewById 来获取它的句柄。我修改了构造函数以传递对标签的引用,这样事件就有了它的句柄,但不确定这是否是最优雅的实现方式。

b) 传回信息,例如当我的事件触发时,我可能想禁用一些 EditText 字段。我在想这样做的正确方法可能是从我的事件监听器中分派(dispatch)另一个事件,Activity 监听该事件,当它看到该事件时,禁用相关字段。这是在 Android 中执行此操作的方法吗?

希望有人能提供帮助,非常感谢。

谢谢

最佳答案

使用显式事件监听器(无论是否匿名)的替代方法是使用 xml 中的 onClick 属性直接分派(dispatch)到方法,如下例所示:

布局 xml 文件:

 <Button android:onClick="buttonClickedCallback" />

现在简单地为您的 Activity 定义一个方法:

class CustomActivity extends Activity {
public void buttonClickedCallback(View clickedButton) {
// do stuff
}
}

自 Android 1.6 起可用,如 UI framework changes in Android 1.6 中所述.

关于android - 将信息从 EventListener 传回 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4115648/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com