java条形码扫描器应用程序。单个活动上有多个处理程序
我有一个条形码扫描器应用程序,它的布局如下
<Button
style="?安卓:attr/buttonStyleSmall"
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:text="@string/scanner"
安卓:id="@+id/scan_barcode1"
安卓:layout_below="@+id/spinner7"
安卓:layout_alignParentLeft="true"
安卓:layout_alignParentStart="true"
安卓:layout_marginTop="25dp"
安卓:onClick="openScanner1" />
<EditText
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:inputType="number"
安卓:ems="10"
安卓:id="@+id/scan_content"
安卓:layout_below="@+id/scan_barcode1"
安卓:layout_alignParentLeft="true"
安卓:layout_alignParentStart="true"
安卓:hint="@string/serial_number"
安卓:layout_alignRight="@+id/spinner7"
安卓:layout_alignEnd="@+id/spinner7" />
<Button
style="?安卓:attr/buttonStyleSmall"
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:text="@string/scanner"
安卓:id="@+id/scan_barcode2"
安卓:layout_below="@+id/scan_content"
安卓:layout_alignParentLeft="true"
安卓:layout_alignParentStart="true"
安卓:onClick="openScanner2" />
<EditText
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:inputType="number"
安卓:ems="10"
安卓:id="@+id/scan_content2"
安卓:layout_below="@+id/scan_barcode2"
安卓:layout_alignParentLeft="true"
安卓:layout_alignParentStart="true"
安卓:hint="@string/serial_number"
安卓:layout_alignRight="@+id/scan_content"
安卓:layout_alignEnd="@+id/scan_content" />
我希望能够按scan_barcode1并在editText scan_内容中接收条形码的序列号,然后按scan_barcode2并在editText scan_内容2中接收条形码的序列号。当我按下这两个按钮中的任何一个时,我的应用程序崩溃
public void openScanner1 (View view) {
IntentIntegrator scanIntegrator = new IntentIntegrator (this);
scanIntegrator.initiateScan();
startActivityForResult(scanIntegrator, 1);
}
public void openScanner2 (View view) {
IntentIntegrator scanIntegrator = new IntentIntegrator(this);
scanIntegrator.initiateScan();
startActivityForResult(scanIntegrator, 2);
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
if (scanningResult != null && requestCode == 1 && resultCode == RESULT_OK ) {
String scanContent = scanningResult.getContents();
contentTxt.setText(scanContent);
}
else if (scanningResult!=null && requestCode == 2 && resultCode == RESULT_OK) {
String scanContent = scanningResult.getContents();
contentTxt2.setText(scanContent);
}
else{
Toast toast = Toast.makeText(getApplicationContext(),
"No scan data received!", Toast.LENGTH_SHORT);
toast.show();
}
}
这是我的日志
Caused by: 安卓.content.ActivityNotFoundException: No Activity found to handle Intent { }
at 安卓.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1817)
at 安卓.app.Instrumentation.execStartActivity(Instrumentation.java:1515)
at 安卓.app.Activity.startActivityForResult(Activity.java:4026)
at 安卓.app.Activity.startActivityForResult(Activity.java:3973)
at 安卓.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:820)
at com.example.gamezcua.etaksytemscop.BeforeBatteryInventory.openScanner1(BeforeBatteryInventory.java:521)
这是我的安卓清单
<?xml version="1.0" encoding="utf-8"?>
<application
安卓:allowBackup="true"
安卓:icon="@mipmap/etak_launcher"
安卓:label="@string/app_name"
安卓:theme="@style/AppTheme" >
<activity
安卓:name=".MainActivity"
安卓:label="@string/app_name" >
<intent-filter>
<action 安卓:name="安卓.intent.action.MAIN" />
<category 安卓:name="安卓.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
安卓:name=".EditExistingCloseOutPackage"
安卓:label="@string/title_activity_edit_existing_close_out_package" >
</activity>
<activity
安卓:name=".SiteInfo"
安卓:label="@string/title_activity_site_info" >
</activity>
<activity
安卓:name=".choice"
安卓:label="@string/title_activity_choice" >
</activity>
<activity
安卓:name=".NewOrExisting"
安卓:label="@string/title_activity_new_or_existing" >
</activity>
<activity
安卓:name=".NewBatteryInformation"
安卓:label="@string/title_activity_new_battery_information" >
</activity>
<activity
安卓:name=".ExistingBatteryInformation"
安卓:label="@string/title_activity_existing_battery_information" >
</activity>
<activity
安卓:name=".BatteryInstallationChecklist"
安卓:label="@string/title_activity_battery_installation_checklist" >
</activity>
<activity
安卓:name=".FinalInstallationChecklistBattery"
安卓:label="@string/title_activity_final_installation_checklist_battery" >
</activity>
<activity
安卓:name=".FinalSiteChecklist"
安卓:label="@string/title_activity_final_site_checklist" >
</activity>
<activity
安卓:name=".PhotoGallery"
安卓:label="@string/title_activity_photo_gallery" >
</activity>
<activity
安卓:name=".BeforeBatteryInventory"
安卓:label="@string/title_activity_before_battery_inventory" >
</activity>
<activity
安卓:name=".CompleteOnScopeWork"
安卓:label="@string/title_activity_complete_on_scope_work" >
</activity>
<activity
安卓:name=".JobType"
安卓:label="@string/title_activity_job_type" >
</activity>
<activity
安卓:name=".AfterInventory"
安卓:label="@string/title_activity_after_inventory" >
</activity>
<activity
安卓:name=".Both"
安卓:label="@string/title_activity_both" >
</activity>
</application>
更新的java文件
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
if (scanningResult!=null) {
String scanContent = scanningResult.getContents();
editText32.setText(scanContent);
}
if (scanningResult != null) {
String scanContent = scanningResult.getContents();
editText33.setText(scanContent);
}
else{
Toast toast = Toast.makeText(getApplicationContext(),
"No scan data received!", Toast.LENGTH_SHORT);
toast.show();
}
}
共 (0) 个答案