2012-01-04 35 views
1

我有一个蓝牙条形码扫描仪连接到我的平板电脑。每当我扫描一个条形码,并且焦点位于我的应用程序的编辑文本框中时,扫描的数据就会出现在编辑文本中。android-获取数据,因为它从外部键盘输入

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

编辑: 的步骤,我下面:

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

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

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

我想我的应用程序做什么:

由于作为数据出现在编辑文本很快,我想将它复制到文本框中。现在我正在按按钮的点击。

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

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();  
} 

}

+0

请详细描述一下吗? – 2012-01-04 06:28:11

+0

任何代码示例? – 2012-01-04 06:33:45

+0

可以请您 分享代码 – 2012-01-04 07:16:48

回答

2

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

0

试图找到你的类editText.setText(数据)的代码。

无论在你的editText的setText()方法的括号中,那是你的数据,你可以从这里使用它。

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

+0

数据自己出现,我没有为它做任何额外的事情。将扫描数据插入某个可编辑文本框是硬件的特性。 – Pallavi 2012-01-04 07:06:37

+0

但是应用程序是你的。它显示特定编辑文本,硬件角色数据的代码只是将字节传递给android手机,而不是显示在任何edittext本身上。如果你可以分享你的应用程序代码,我会指出我在说什么。 – 2012-01-04 07:10:54

+0

已经发布了代码......我根本没有做任何事情......硬件的设计方式是直接将数据输入到编辑文本中。 – Pallavi 2012-01-04 07:39:18

0

给你的用户界面设计一些编号,并完成工作。我向你展示一个例子。

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 

     } 
    }); 

这仅仅是一个例子。你可以给你自己的ID和名字。