gpt4 book ai didi

java - 使用 Qr 扫描仪扫描无效字符串时我的应用程序崩溃

转载 作者:行者123 更新时间:2023-12-02 13:12:57 24 4
gpt4 key购买 nike

我是 android 初学者...通过 qr 扫描仪我正在扫描数据...代码正在运行好吧...假设如果我扫描像 abc 这样的字符串...我的应用程序正在崩溃...因为字符较少...如何避免崩溃...如果我扫描下面代码中的一些无效字符串...任何人都可以帮忙我...

  public void onActivityResult(int requestCode, int resultCode, Intent data) {
// super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0) {
if (resultCode == Activity.RESULT_OK) {
String contents = data.getStringExtra("SCAN_RESULT");

String Id = contents.substring(0, 10),
password = contents.substring(10, 14);
// formatTxt.setText("FORMAT: " + contents);
// contentTxt.setText("CONTENT: " + format);

Toast toast = Toast.makeText(getActivity(), "" + contents, Toast.LENGTH_LONG);
toast.show();
setdetails(id.toString(), password.toString());



} else if (resultCode == Activity.RESULT_CANCELED) {
// Handle cancel
Toast toast = Toast.makeText(getActivity(), " Cancelled", Toast.LENGTH_SHORT);

toast.show();

}

} else
super.onActivityResult(requestCode, resultCode, data);
}

java.lang.RuntimeException: Failure delivering result ResultInfo{who=android:fragment:0, request=0, result=-1, data=Intent { act=com.google.zxing.client.android.SCAN flg=0x80000 (has extras) }} to activity {com.application}: java.lang.StringIndexOutOfBoundsException: length=7; regionStart=0; regionLength=10

                                                                           at android.app.ActivityThread.deliverResults(ActivityThread.java:3720)
Caused by: java.lang.StringIndexOutOfBoundsException: length=7; regionStart=0; regionLength=10

最佳答案

你需要确保字符串长度不小于14(在你的情况下)而且它也不为空使用此代码:

//...some code ...
String contents = data.getStringExtra("SCAN_RESULT");
if(contents!=null && contents.length() >= 14){
String Id = contents.substring(0, 10),
password = contents.substring(10, 14);
// formatTxt.setText("FORMAT: " + contents);
// contentTxt.setText("CONTENT: " + format);

Toast toast = Toast.makeText(getActivity(), "" + contents, Toast.LENGTH_LONG);
toast.show();
setdetails(id.toString(), password.toString());
}else{
Toast toast = Toast.makeText(getActivity(), "Invalid Data", Toast.LENGTH_LONG);
toast.show();
}

关于java - 使用 Qr 扫描仪扫描无效字符串时我的应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43885936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com