我正在使用自定义脚本引擎创建专家系统引擎,并且一些命令与主xml gui集成。例如,有一个回应'接受字符串并在EditText中设置它们的命令。响应命令对应用程序的功能至关重要,但我无法使用findViewById访问EditText,因为命令例程驻留在另一个类中。即使它是错误的形式,我如何从其他类访问GUI元素?
谢谢。
答案 0 :(得分:1)
如何从其他类访问GUI元素?
如果其他类是活动,则不能。您应该以Intent或其他方式传递EditText的内容
如果另一个类不是Activity,只需将EditText设为公共字段变量即可。或者,您可以将此其他类传递给您的Activity或根视图,并使用findViewById()
之类的方法,而不用大惊小怪。
答案 1 :(得分:0)
使用自定义方法(如public void setEditText(EditText myEditText)
或类似的东西)将EditText对象提供给“其他类”,或者将其作为构造函数中的参数(具体取决于您的具体情况)。
另一种可能性是发送定义EditText的完整Activity,因此您可以使用findViewById()
来获取EditText。但我不推荐它(我认为是不好的做法),除非你有很多需要访问的对象。
答案 2 :(得分:0)
我有同样的问题。我的活动中的代码有太多的代码,我想创建外部类来进行一些处理。但是,一个进程包括使用EditText
,并且您无法在没有UI的类中实例化该进程。因此,最简单的解决方案是在活动中制作EditText myEditText
变量public
和static
,然后在外部类中使用它时,只需使用带有原始活动的点符号从,它应该工作。 static
关键字使其成为全局变量,可由其他类/活动访问。
public static EditText myEditText;
//将此内容放入您的活动
ActivityName.myEditText.someMethod();
//在外部类中使用EditText