我正在构建一个应用程序,当在活动中单击一个按钮时会弹出一个对话框,并且该对话框包含一个 MultiAutoCompleteTextview 以选择联系人姓名%number、contactname1%number、contactname2%number 形式的联系人...
所以现在我被困在一个地方,我必须通过使用逗号“,”拆分 MultiAutoCompleteTextview 并将它们一一存储在名为“arrayOfString”的字符串数组中来存储各个联系人。
接下来,我想在它们之间使用 % 拆分名称和联系人编号,并使用字符串“setnum”一一存储所有联系人号码,并且仅将没有名称的联系人号码存储在 sharedpreferences 中。
但是当我点击下面的代码保存时,应用程序正在崩溃并重新加载
初始化:
SharedPreferences sp;
SharedPreferences.Editor ed;
String setnum="";
代码:
.setPositiveButton(R.string.save, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String[] arrayOfString=localMultiAutoCompleteTextview.getText().toString().split(",");
int i=0;
if(i>=arrayOfString.length){
System.out.println("**********************" + setnum);
Toast.makeText(getActivity(), setnum, Toast.LENGTH_SHORT).show();
sp=getActivity().getSharedPreferences("sdat", 2);
ed=sp.edit();
ed.putString("snum", setnum);
ed.commit();
setnum="";
getActivity().finish();
return;
}
String str2="";
if(arrayOfString[i].contains("%"))
str2 = arrayOfString[i].split("%")[1];
String str1;
for (setnum=(setnum+str2+",");;setnum=(setnum+str1+",")) {
i++;
str1 = arrayOfString[i]; /*i am getting error here*/
}
}
});
我在 str1 = arrayOfString[i]; 的最后一行收到错误
日志:
java.lang.ArrayIndexOutOfBoundsException: length=2; index=2
at com.sharat.emin3m.antirag.ContactDialog$1.onClick(ContactDialog.java:75)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:162)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5354)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:911)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
请帮我编写我在大学里的小项目的代码。谢谢你。