从Android中的活动获取EditText

从Android中的活动获取EditText,android,android-widget,Android,Android Widget,我想在zebra打印机上制作和打印票据的API,我有我的主要活动(仅用于测试): 我有一个叫做Printer的类(API): public class Printer { private ZebraPrinterConnection zebraPrinterConnection; private ZebraPrinter zebra; private String MAC; public Printer (Activity activity) { zebraPrinterConnec

我想在zebra打印机上制作和打印票据的API,我有我的主要活动(仅用于测试):

我有一个叫做Printer的类(API):

public class Printer {

private ZebraPrinterConnection zebraPrinterConnection;
private ZebraPrinter zebra;
private String MAC;

public Printer (Activity activity) {
    zebraPrinterConnection = null;
    zebra = null;
    activity....get Edit Text
    this.MAC = MAC;
}}
我需要的是从早期活动中获取编辑文本,有什么方法可以做到这一点吗?

您尝试过吗

EditText macAddress = (EditText) activity.findViewById(R.id.editText1);
String macAddressString = macAddress.getText();
由于对访问非UI线程中的UI元素的限制,视图(如
EditText
)上的某些操作可能不起作用。如果出现这种情况,请参阅此问题,了解从其他线程访问EditText元素的方法:

或者Android博客上关于同一主题的文章:

你试过这个吗

EditText macAddress = (EditText) activity.findViewById(R.id.editText1);
String macAddressString = macAddress.getText();
由于对访问非UI线程中的UI元素的限制,视图(如
EditText
)上的某些操作可能不起作用。如果出现这种情况,请参阅此问题,了解从其他线程访问EditText元素的方法:

或者Android博客上关于同一主题的文章:


您应该能够在Printer类中实现这一点(请参阅“活动”变量而不是“此”)好的,您是对的,但是还有其他方法吗?我认为这种方式并不是你所问的如何访问EditText的最佳方式,这是一种一行完成的方式。另一种方法是将EditText或字符串直接传递给API(老实说,我更喜欢最后一种),我的意思是像activity.getAllWidgets().getEdtText();或者类似的东西从活动中检索
视图的唯一合适方法是使用
findViewByID
。否则,您可以创建一个getter方法,但您必须传递ZebraPrinterActivity类型,而不仅仅是一个Activity。这取决于您,但我建议您在Printer类中使用
findViewByID
您应该能够做到这一点(请参阅'activity'变量而不是'this')好的,您是对的,但是还有其他方法吗?我认为这种方式并不是你所问的如何访问EditText的最佳方式,这是一种一行完成的方式。另一种方法是将EditText或字符串直接传递给API(老实说,我更喜欢最后一种),我的意思是像activity.getAllWidgets().getEdtText();或者类似的东西从活动中检索
视图的唯一合适方法是使用
findViewByID
。否则,您可以创建一个getter方法,但您必须传递ZebraPrinterActivity类型,而不仅仅是一个Activity。这取决于您,但我建议您使用
findviewbyd