0

ゼブラプリンターでチケットを印刷するための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;
}}

必要なのは、初期のアクティビティから編集テキストを取得することです。これを行う方法はありますか?

4

1 に答える 1

3

これを試しましたか?

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

EditText非 UI スレッドでの UI 要素へのアクセスの制限により、ビューに対する一部の操作が機能しない場合があります。その場合は、別のスレッドから EditText 要素にアクセスする方法について、この SO の質問を参照してください。

非 UI スレッドでいくつかの Android UI を実行する

または、同じトピックに関する Android ブログ投稿:

痛みのないスレッディング | Android デベロッパー ブログ

于 2012-06-08T17:44:34.167 に答える