【发布时间】:2014-07-24 09:40:43
【问题描述】:
我在代码中得到 ArrayIndexOutOfBoundsException 请帮助问题出在哪里。 以及如何解决该问题 这是我的活动的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.textview = (TextView) findViewById(R.id.textView1);
// HTTPConnector http = new HTTPConnector();
GetAllDataTask get = new GetAllDataTask();
get.execute();
}
public void setTextToTextView(JSONArray jsonArray) {
String s = "";
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject json = null;
try {
json = jsonArray.getJSONObject(i);
s = s + "\n" + "Name =" + json.getString("name") + "\n"
+ "Contact number = " + json.getInt("contact") + "\n"
+ "Categroy = " + json.getString("Category");
} catch (JSONException e) {
Toast.makeText(getApplicationContext(),
"there is some problem", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
this.textview.setText(s);
}
private class GetAllDataTask extends
AsyncTask<HTTPConnector, Long, JSONArray> {
@Override
protected JSONArray doInBackground(HTTPConnector... arg0) {
// TODO Auto-generated method stub
return arg0[0].GetAllData();
}
@Override
protected void onPostExecute(JSONArray jsonArray) {
// TODO Auto-generated method stub
setTextToTextView(jsonArray);
}
}
这是我从这个问题中得到的堆栈跟踪的一部分:
07-24 14:27:36.059: E/AndroidRuntime_2_crash(27865): crash in the same process:
07-24 14:27:36.059: E/AndroidRuntime_2_crash(27865): java.lang.RuntimeException: An error occured while executing doInBackground()
07-24 14:27:36.059: E/AndroidRuntime_2_crash(27865): at android.os.AsyncTask$3.done(AsyncTask.java:278)
07-24 14:27:36.059: E/AndroidRuntime_2_crash(27865): Caused by: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
【问题讨论】:
-
我猜某个地方的数组索引超出范围...
-
HTTPConnector... arg0在某些时候必须为空。 -
如果数组的长度为零(如错误消息中所述),则索引 0 上没有条目。
标签: android