android-从外部键盘输入数据

时间:2012-01-04 06:24:22

标签: android externalinterface

我的蓝牙条形码扫描仪连接到我的平板电脑。每当我扫描条形码并且焦点位于我的应用程序的编辑文本框时,扫描的数据就会出现在编辑文本中。

我想在编辑文本中同时获取这些数据。我尝试过使用setOnClickListenersetOnKeyListener。如果有人知道,请告诉我。

EDITED: 我正在遵循的步骤:

  1. 我的程序有一个简单的编辑文本,一个按钮,一个文本框。

  2. 通过硬件输入扫描条形码时,数据将被插入到我程序的编辑文本中。

  3. 点击按钮,我将编辑文本内容复制到文本框中。

  4. 我希望我的应用做什么:

    只要数据出现在编辑文本中,我就想将其复制到文本框中。现在我按下按钮点击它。

    这是我的代码:我怀疑它是否有用,因为外部硬件在编辑文本中显示数据。

    public class SimpleTextBoxActivity extends Activity {

    Button btnClear, btnPairedList, btnAvailableList, btnPairedAvailableList,btnShowScan;
    
    EditText edtSacnnedData;
    BroadcastReceiver brSent;
    TextView txtShowScannedData;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        edtSacnnedData=(EditText) findViewById(R.id.edtData);
        btnClear=(Button) findViewById(R.id.btnClear);
        btnShowScan=(Button) findViewById(R.id.btnScannedText);
        txtShowScannedData=(TextView) findViewById(R.id.txtScanData);
    
        Log.d("my", "b4 set visibility");
        edtSacnnedData.setBackgroundColor(Color.BLACK);
    
        Log.d("my", "after set visibility");
        btnClear.setOnClickListener(new OnClickListener() {         
            @Override
            public void onClick(View v) {
                edtSacnnedData.setText("");
                txtShowScannedData.setText("");
            }
        });
        btnShowScan.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                String str=edtSacnnedData.getText().toString();
                txtShowScannedData.setText(str);
                edtSacnnedData.setText("");
            }
        });
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();      
    }
    

    }

    Button btnClear, btnPairedList, btnAvailableList, btnPairedAvailableList,btnShowScan; EditText edtSacnnedData; BroadcastReceiver brSent; TextView txtShowScannedData; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); edtSacnnedData=(EditText) findViewById(R.id.edtData); btnClear=(Button) findViewById(R.id.btnClear); btnShowScan=(Button) findViewById(R.id.btnScannedText); txtShowScannedData=(TextView) findViewById(R.id.txtScanData); Log.d("my", "b4 set visibility"); edtSacnnedData.setBackgroundColor(Color.BLACK); Log.d("my", "after set visibility"); btnClear.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { edtSacnnedData.setText(""); txtShowScannedData.setText(""); } }); btnShowScan.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String str=edtSacnnedData.getText().toString(); txtShowScannedData.setText(str); edtSacnnedData.setText(""); } }); } @Override protected void onDestroy() { super.onDestroy(); }

3 个答案:

答案 0 :(得分:2)

您需要使用addTextChangedListener(..)可能对您有所帮助。这里有关于此的有趣讨论的链接。 Text changed listener

答案 1 :(得分:0)

尝试在您的班级中找到editText.setText(数据)代码。

无论您在editText的setText()方法的括号中是什么,这都是您的数据,您可以从此处使用它。

如果我的假设有误,请分享您的代码。

答案 2 :(得分:0)

为您的UI设计提供一些ID并完成工作。我给你看了一个例子。

 EditText editText;
 TextView textView;

 editText = (EditText) findViewById(R.id.editText);
 textView = (TextView) findViewById(R.id.textView);

 editText.setOnFocusChangeListener(new OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            textView.setText(editText.getText().toString());

        }
    });

在上面的示例中,只要您移动焦点,您的textview就会更新,或者您也可以使用:

editText.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            textView.setText(editText.getText().toString());

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub

        }
    });

这只是一个例子。您可以提供自己的身份证和姓名。