Android studio 无法在我的自动完成文本视图中显示条形码扫描文本
我已经通过使用实现了条形码扫描仪。本教程使用了Android studio 无法在我的自动完成文本视图中显示条形码扫描文本,android-studio,android-fragments,zxing,barcode-scanner,autocompletetextview,Android Studio,Android Fragments,Zxing,Barcode Scanner,Autocompletetextview,我已经通过使用实现了条形码扫描仪。本教程使用了zxing集成。我能够配置条形码应用程序 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" and
zxing集成
。我能够配置条形码应用程序
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="2dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:text="Smart MSN #" />
<AutoCompleteTextView
android:id="@+id/smart_msn_spinner"
android:layout_width="157dp"
android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:inputType="number" />
<ImageButton
android:id="@+id/start_scan"
android:layout_width="66dp"
android:layout_height="match_parent"
android:background="@color/white"
app:srcCompat="@drawable/ic_baseline_qr_code_scanner_24" />
</LinearLayout>
public class NewFormFragment extends Fragment {
@BindView(R.id.start_scan)
ImageButton startScan;
@BindView(R.id.smart_msn_spinner)
AutoCompleteTextView smartMsnSpinner;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
bindListners();
}
private void bindListners() {
.
.
.
.
startScan.setOnClickListener(startScanning);
}
private final View.OnClickListener startScanning = v -> {
if(v.getId()==R.id.start_scan){
IntentIntegrator scanIntegrator = new IntentIntegrator(getActivity());
scanIntegrator.initiateScan();
}
};
public void onActivityResult(int requestCode, int resultCode, Intent data) {
IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if (scanningResult != null) {
String scanContent = scanningResult.getContents();
String scanFormat = scanningResult.getFormatName();
//smartMsnSpinner.setText("FORMAT: " + scanFormat);
smartMsnSpinner.setText(scanContent);
}
}
}
公共类NewFormFragment扩展了片段{
@BindView(R.id.start\u扫描)
图像按钮开始扫描;
@BindView(R.id.smart\u msn\u微调器)
AutoCompleteTextView smartMsnSpinner;
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
bindListners();
}
私有void bindListners(){
.
.
.
.
startScan.setOnClickListener(startScanning);
}
private final View.OnClickListener startScanning=v->{
如果(v.getId()==R.id.start\u扫描){
IntentIntegrator scanIntegrator=新的IntentIntegrator(getActivity());
scanIntegrator.initiateScan();
}
};
ActivityResult上的公共void(int请求代码、int结果代码、意图数据){
IntentResult scanningResult=IntentIntegrator.parseActivityResult(请求代码、结果代码、数据);
如果(扫描结果!=null){
字符串scanContent=scanningResult.getContents();
字符串scanFormat=scanningResult.getFormatName();
//smartMsnSpinner.setText(“格式:“+scanFormat”);
smartMsnSpinner.setText(扫描内容);
}
}
}
当我启动应用程序并单击扫描按钮时,我可以扫描条形码。但扫描后,我在我的自动完成文本视图中什么也看不到,即smartMsnSpinner
在调试过程中,我看到在扫描断点之后,从未点击过onActivityResult
我一定错过了一些我不知道的东西
非常感谢您的帮助。如果您在片段
中使用zxing扫描仪而不是活动
,您可能需要调用IntentIntegrator.forSupportFragment(NewFormFragment.this).initiateScan()
。另请参见:@atarasenko It's giving me错误:找不到符号IntentIntegrator.forSupportFragment(this.initiateScan()
将zxing库包含为gradle依赖项:实现'com.journeyapps:zxing android embedded:4.1.0'
,然后调用IntentIntegrator.forFragment(this.initiateScan()代码>。请参阅指南。@atarasenko我仍然无法使用.forFragment
或.forSupportFragment