【发布时间】:2014-12-28 21:42:05
【问题描述】:
我在 viewpager 选项卡的片段中使用 zxing。我可以用 Intent 调用 zxing 并读取 QR 码,但我无法将结果写入编辑文本。
这是我在 FragmentPagerAdapter 中创建选项卡的地方:
@Override
public Fragment getItem(int i) {
switch (i) {
case 0:
return new Tab1();
case 1:
return new Tab2();
default:
return new EmptyTab();
}
}
还有我的 Tab1 类:
public class Tab1 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.tab_1, container, false);
IDEditText = (EditText) rootView.findViewById(R.id.fttx_id_editText);
Button scanBarcode = (Button) rootView.findViewById(R.id.scan_barcode);
scanBarcode.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
IntentIntegrator scanIntegrator = new IntentIntegrator(getActivity);
scanIntegrator.initiateScan();
}
});
return rootView;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
// retrieve scan result
IntentResult scanningResult = IntentIntegrator.parseActivityResult(
requestCode, resultCode, intent);
if (scanningResult != null) {
// we have a result
String scanContent = scanningResult.getContents();
IDEditText .setText("CONTENT: " + scanContent);
} else {
Toast.makeText(getActivity(),
"No scan data received!", Toast.LENGTH_SHORT).show();
}
}
zxing 开始;然后读取;然后结束;但没有扫描数据:我认为“onActivityResult”永远不会启动:(
如何在这个片段中使用 zxing?
【问题讨论】:
-
您是否还在 Activity 中覆盖
onActivityResult(),还是仅覆盖 Fragment?如果你是,你应该调用super.onActivityResult,它将结果推送到任何片段。 -
@ataulm;我只是在我的片段中使用'onActivityResult()';不在我的 Activity 中覆盖。
-
在 if 语句的第一部分做一个 toast 文本,看看它是否到达那里,然后告诉我们
-
@ataulm;我现在在 Activity 中使用 'super.onActivityResult(arg0, arg1, arg2);' 覆盖它但没用。
-
@PanayiotisIrakleous;我做到了,但它从来没有进入'onActivityResult'
标签: android android-fragments zxing