来自另一个类的edittext

时间:2012-12-13 18:39:01

标签: java android android-edittext

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

谢谢。

3 个答案:

答案 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变量publicstatic,然后在外部类中使用它时,只需使用带有原始活动的点符号从,它应该工作。 static关键字使其成为全局变量,可由其他类/活动访问。

public static EditText myEditText; //将此内容放入您的活动

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