我的蓝牙条形码扫描仪连接到我的平板电脑。每当我扫描条形码并且焦点位于我的应用程序的编辑文本框时,扫描的数据就会出现在编辑文本中。
我想在编辑文本中同时获取这些数据。我尝试过使用setOnClickListener
,setOnKeyListener
。如果有人知道,请告诉我。
EDITED: 我正在遵循的步骤:
我的程序有一个简单的编辑文本,一个按钮,一个文本框。
通过硬件输入扫描条形码时,数据将被插入到我程序的编辑文本中。
点击按钮,我将编辑文本内容复制到文本框中。
我希望我的应用做什么:
只要数据出现在编辑文本中,我就想将其复制到文本框中。现在我按下按钮点击它。
这是我的代码:我怀疑它是否有用,因为外部硬件在编辑文本中显示数据。
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();
}
答案 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
}
});
这只是一个例子。您可以提供自己的身份证和姓名。