【问题标题】:Get EditText from Activity in Android从 Android 的 Activity 中获取 EditText
【发布时间】:2012-06-12 18:59:49
【问题描述】:

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

public class ZebraPrinterActivity extends Activity {
public EditText macAddress;
public Button testButton;
public Printer zebra;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    macAddress = (EditText) this.findViewById(R.id.editText1);
    testButton = (Button) this.findViewById(R.id.button1);

    zebra = new Printer(new ZebraPrinterActivity());
    testButton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            new Thread(new Runnable() {
                public void run() {

                }
            }).start();
        }
    });
}}

我有一个名为 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;
}}

我需要的是从早期活动中获取编辑文本,有什么办法吗?

【问题讨论】:

    标签: android android-widget


    【解决方案1】:

    你试过了吗?

    EditText macAddress = (EditText) activity.findViewById(R.id.editText1);
    String macAddressString = macAddress.getText();
    

    由于在非 UI 线程中访问 UI 元素的限制,某些视图上的操作(例如 EditText)可能无法工作。如果发生这种情况,请参阅此 SO 问题以了解从另一个线程访问 EditText 元素的方法:

    Do some Android UI stuff in non-UI thread

    或有关同一主题的 Android 博客文章:

    Painless Threading | Android Developers Blog

    【讨论】:

    • 您应该可以在 Printer 类中执行此操作(请参阅“活动”变量而不是“此”)
    • 好的,你是对的,但还有其他方法吗?我认为这种方式不是最好的
    • 您在问如何访问 EditText,这是一种在一行中完成的方法。另一种方法是将 EditText 或 String 直接传递给您的 API(老实说,我更喜欢最后一个)
    • 我的意思是像activity.getAllWidgets().getEdtText();或类似的东西
    • 从活动中检索View 的唯一正确方法是使用findViewByID。否则,您可以创建一个 getter 方法,但您必须传递一个 ZebraPrinterActivity 类型,而不仅仅是一个 Activity。这取决于你,但我建议使用 findViewByID
    猜你喜欢
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    相关资源
    最近更新 更多