- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试构建一个应用程序,如果用户单击一个按钮,它将显示一个带有 multiChoiceItems
的警告对话框,
我从 ArrayList
(已转换为数组字符串)中为 multiChoiceItems 中的选项分配了值,但是当我尝试单击按钮时,程序出错而不是显示对话框有了选项,
它抛出一个 java.lang.ArrayIndexOutOfBoundException
异常,但我不知道错误在哪里以及我应该如何修复它。
这是我的一段代码和 Logcat:
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.create_todolist);
sessionAndDeclaration();
getActionBar().setDisplayShowHomeEnabled(false);
new AttemptGetReceiver().execute();
}
class AttemptGetReceiver extends AsyncTask<Void, Void, Boolean> {
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
pd = new ProgressDialog(CreateToDoList.this);
pd.setMessage("Loading...");
pd.setIndeterminate(false);
pd.show();
pd.setCancelable(true);
}
// will get group member from selected group id to be receiver
@Override
protected Boolean doInBackground(Void... arg0) {
// TODO Auto-generated method stub
int success = 0;
try {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("GroupId", groupId));
JSONObject json = jsonParser.makeHttpRequest(url, "POST",
params);
success = json.getInt("success");
if (success == 1) {
Log.d("Success", "Getting parsed data");
mMember = json.getJSONArray("members");
try {
for (int i = 0; i < mMember.length(); i++) {
JSONObject c = mMember.getJSONObject(i);
String parsedMember = c.getString("Username");
mMemberList.add(parsedMember);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
} catch (JSONException e) {
}
return null;
}
@Override
protected void onPostExecute(Boolean result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
pd.dismiss();
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.bChooseReceiver:
alertDialogListReceiver();
break;
}
public void alertDialogListReceiver() {
// TODO Auto-generated method stub
stringList.clear();
final String[] listMember = new String[mMemberList.size()];
final boolean[] itemsChecked = new boolean[mMemberList.size()];
for (int i = 0; i < mMemberList.size(); i++) {
listMember[i] = mMemberList.get(i);
}
stringList.clear();
AlertDialog.Builder builder = new AlertDialog.Builder(
CreateToDoList.this);
builder.setTitle("Choose Your Receiver : ");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
xmlListReceiver.setText("Post To : ");
for (int i = 0; i < listMember.length; i++) {
if (itemsChecked[i]) {
stringList.add(listMember[i]);
itemsChecked[i] = false;
}
Log.d("flag", "after for");
}
String string = "";
for (int i = 0; i < stringList.size(); i++) {
xmlListReceiver.setText("Send To : ");
string = string + " " + stringList.get(i);
}
xmlListReceiver.setText(xmlListReceiver.getText().toString()
+ string);
}
});
builder.setMultiChoiceItems(listMember, new boolean[] { false, false,
false }, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which,
boolean isChecked) {
itemsChecked[which] = isChecked;
}
});
builder.show();
Log.d("flag", "bottom of alert dialog");
}
}
日志:
02-01 22:23:40.866: E/AndroidRuntime(28969): FATAL EXCEPTION: main
02-01 22:23:40.866: E/AndroidRuntime(28969): Process: com.thesis.teamizer, PID: 28969
02-01 22:23:40.866: E/AndroidRuntime(28969): java.lang.ArrayIndexOutOfBoundsException: length=3; index=3
02-01 22:23:40.866: E/AndroidRuntime(28969): at com.android.internal.app.AlertController$AlertParams$1.getView(AlertController.java:894)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.widget.AbsListView.obtainView(AbsListView.java:2712)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.widget.ListView.measureHeightOfChildren(ListView.java:1274)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.widget.ListView.onMeasure(ListView.java:1186)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.View.measure(View.java:17495)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.View.measure(View.java:17495)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1410)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.View.measure(View.java:17495)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.View.measure(View.java:17495)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.View.measure(View.java:17495)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5363)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
02-01 22:23:40.866: E/AndroidRuntime(28969): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2548)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.View.measure(View.java:17495)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2285)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1371)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1595)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6637)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:814)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.Choreographer.doCallbacks(Choreographer.java:614)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.Choreographer.doFrame(Choreographer.java:584)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:800)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.os.Handler.handleCallback(Handler.java:733)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.os.Handler.dispatchMessage(Handler.java:95)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.os.Looper.loop(Looper.java:146)
02-01 22:23:40.866: E/AndroidRuntime(28969): at android.app.ActivityThread.main(ActivityThread.java:5602)
02-01 22:23:40.866: E/AndroidRuntime(28969): at java.lang.reflect.Method.invokeNative(Native Method)
02-01 22:23:40.866: E/AndroidRuntime(28969): at java.lang.reflect.Method.invoke(Method.java:515)
02-01 22:23:40.866: E/AndroidRuntime(28969): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
02-01 22:23:40.866: E/AndroidRuntime(28969): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
02-01 22:23:40.866: E/AndroidRuntime(28969): at dalvik.system.NativeStart.main(Native Method)
最佳答案
我认为问题在于您在此处设置了默认项目状态(选中或未选中):
builder.setMultiChoiceItems(listMember, new boolean[] { false, false,
false }, new DialogInterface.OnMultiChoiceClickListener() {
对于 3 个项目,但您可以有不同数量的项目:mMemberList.size()
,来自 javadoc :
checkedItems specifies which items are checked. It should be null in which case no items are checked. If non null it must be exactly the same length as the array of items.
对 checkedItems
使用 null
应该可以解决问题:
builder.setMultiChoiceItems(listMember, null, new DialogInterface.OnMultiChoiceClickListener() {
关于Java.lang.ArrayIndexOutOfBoundException - AlertDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28264332/
我正在尝试模拟终端/文件系统。现在我正在解析和标记命令。 我正在尝试确定什么被视为有效命令。我的策略是检查输入数组中的索引 2 元素是否是字符串“empty”以外的任何内容。如果是,我的 checkV
这是我计算 n 的斐波那契数的代码。当 n = 0、ArrayIndexOutOfBoundException 引发时,我不明白。从 fib 函数中,当 n = 0 时,它应该返回 0。这是什么原因造
我创建了一个像这样的堆栈类。有时它会运行,有时会通过 ArrayIndexOutofBoundException 运行。线程中有什么问题?不太明白,请帮忙。 public class StackImp
如果我正在数组中查找某个值(针),并且该值不存在于该数组中,我将收到 java.lang.ArrayIndexOutOfBoundsException。 (见下面的代码)如果该值存在于数组中,它就可以
我编写了一个简单的代码来理解手动传递值,这是我的代码 public class coba{ public static void main (String[] args){ i
我的任务是编写一个函数来重新排列数组,以便奇数从大到小出现在数组的开头,偶数从最小到最大出现在数组的末尾。除了标准输入和输出流之外,我们不允许使用任何其他库。 当数字为:时输出有效: {-15, 45
只要位置到达某个点,此代码就会不断抛出 ArrayOutBoundsException 40。有时程序运行良好。 //method to get player movement around the
我目前正在使用 hsqldb。我的创建语句如下所示: CREATE TABLE Movie ( movieId INTEGER GENERATED BY DEFAULT AS IDENTITY
我得到了这个奇怪的异常,我真的不明白为什么..我尝试调试并发现它在运行时出错了: opt[i][j] = Double.POSITIVE_INFINITY; 并且当 i == 0 和 j == 1 时
输入是 1000:rohit:male:dev:2500 在此我想数一数男性和女性的数量。当我使用 split 时,将每个性别字段分配给 reducer 显示 ArrayIndexOutOfBounf
如果我们创建一个如下所示的虚拟 ArrayList 并使用 -1 和 1 作为参数调用 get 方法。然后我们得到以下输出: 对于测试用例 1:它抛出 ArrayIndexOutOfBoundExce
在我的回历应用程序中,如果我单击下个月按钮并到达年底(即最后一个月),或者如果我单击上个月按钮直到到达年初(即第一个月),应用程序崩溃并抛出 java.lang.ArrayIndexOutOfBoun
这里的异常是 IndexOutOfBoundsException: public static void main(String[] args) { List elements = new A
我正在尝试构建一个应用程序,如果用户单击一个按钮,它将显示一个带有 multiChoiceItems 的警告对话框, 我从 ArrayList(已转换为数组字符串)中为 multiChoiceItem
public class ReadToHashmap { public static void main(String[] args) throws Exception { Map map =
我一直在研究Magic Square的形成,在阅读了算法之后,我发现在形成MagicSquare时需要遵循一定的规则。 我遵循的算法是: The magic constant will always
堆栈跟踪很长,但这是相关部分。 Caused by: java.lang.ArrayIndexOutOfBoundsException: 33 at java.lang.String.equals
我是java开发领域的初学者,但我仍然是Java编程的学习者。我想在 netbeans IDE 上查看支持 vector 机分类器的输出。因此,我复制了这段附加的代码,并尝试使用所有其他必需的类和主方
这个问题已经有答案了: What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? (25 个回答)
我正在做一个 TicTacToe 程序,现在我正在使用菜单来更改棋盘的大小(从 3x3 到 9x9 的任意位置),我需要在添加新按钮之前删除当前使用的按钮。在循环尝试删除它们时,我收到此错误: Exc
我是一名优秀的程序员,十分优秀!