1

我正在使用自定义脚本引擎创建一个专家系统引擎,其中一些命令与主 xml gui 集成。例如,有一个“响应”命令接受字符串并将它们设置在 EditText 中。响应命令对于应用程序的功能至关重要,但我无法使用 findViewById 访问 EditText,因为命令例程位于另一个类中。即使它是错误的形式,我如何才能从其他类访问 GUI 元素?

谢谢你。

4

3 回答 3

1

如何从其他类访问 GUI 元素?

如果另一个类是 Activity,则不能。您应该通过 Intent 或其他方式传递 EditText 的内容。
如果其他类不是 Activity,只需将 EditText 设为公共字段变量。或者,您可以将其他类传递给您的 Activity 或根视图的引用,并使用类似findViewById()的方法而无需大惊小怪。

于 2012-12-13T18:41:55.920 回答
0

通过使用自定义方法(如public void setEditText(EditText myEditText)或类似的方法)或作为其构造函数中的参数(取决于您的情况)将 EditText 对象提供给“其他类”。

另一种可能性是发送定义 EditText 的完整 Activity,以便您可以findViewById()用来抓取 EditText。但我不会推荐它(我认为这是不好的做法),除非您有很多需要访问的对象。

于 2012-12-13T18:42:19.367 回答
0

我有同样的问题。我的活动中的代码有太多代码,我想创建外部类来在那里进行一些处理。但是,一个过程包括使用EditText,并且您不能在没有 UI 的类中实例化它。因此,最简单的解决方案是在活动中创建EditText myEditText变量publicstatic然后在外部类中使用它时,只需将点表示法与它来自的原始活动一起使用,它应该可以工作。static关键字使它成为一个全局变量,其他类/活动可以访问。

public static EditText myEditText;// 把它放在你的活动中

ActivityName.myEditText.someMethod();// 在你的外部类中使用 EditText

于 2014-12-16T06:14:11.760 回答