Bluetoothスキャナーを使用して入力をスキャンするアプリケーションがあります。現在のインテントが入力を受け取ると、setResult を設定してアクティビティを終了し、別のインテントを開始します。ただし、アクティビティが入力を受け取って終了し、その後新しいアクティビティが開始されると、新しい入力をスキャンする代わりに、古い入力を取得して先に進みます。どうすればこれを止めることができますか。これは私が onCreate() 内で行っていることです:
barcodeEntry = (EditText) findViewById(R.id.barcode_input);
barcodeEntry.requestFocus();
barcodeEntry.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
Toast toast = Toast.makeText(getApplicationContext(),
"Received Scan", Toast.LENGTH_SHORT);
toast.show();
Intent returnIntent = new Intent();
returnIntent.putExtra(WorkflowUtil.EXTRA_ACTION, barcodeEntry.getText().toString());
setResult(RESULT_OK, returnIntent);
finish();
}
});
これは、レイアウト内の私の EditText 宣言がどのように見えるかです:
<EditText
android:id="@+id/barcode_input"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginTop="10dp"
android:background="#000000"
android:enabled="true"
android:inputType="text"
android:textColor="#000000"
android:textSize="20sp"
android:visibility="visible" />
どうすればこれを止めることができますか。ビューがロードされたときにフォーカスを取得しないようにすると機能しますか?