【发布时间】:2016-04-23 03:04:05
【问题描述】:
我一直在尝试制作一个多人回合制应用程序,到目前为止一切进展顺利:我的应用程序可以与本地服务器通信,并从中检索信息。现在,当我尝试将收到的信息放入 arraylist 时,我没有收到任何错误,但是 arraylist 保持为空,这导致我的应用程序在我调用 myArrayList.get(i) 时崩溃。
这是设置数组的代码:
我相信问题是在下面设置数组
//The "i" below is the iterator used for the index
for (int i = 1; i < getSharedPreferences("INFO", MODE_PRIVATE).getInt("numberOfGames", 0) + 1; i++) {
try {
SharedPreferences s = getSharedPreferences("INFO", MODE_PRIVATE);
SharedPreferences.Editor e = s.edit();
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("gameid", s.getString("gameID" + i, null)));
Log.d("request!", "starting");
JSONObject json = jsonParser.makeHttpRequest(
REFRESH_URL, "POST", params);
success = json.getInt("success");
Log.i("LOGI", "Success: " + success);
if (success == 1) {
Log.i("LOGI", "**********GAME #" + s.getString("gameID" + i, null) + "**********");
Log.i("LOGI", "PLAYER1: " + json.getString("player1"));
Log.i("LOGI", "PLAYER2: " + json.getString("player2"));
Log.i("LOGI", "Score1: " + json.getString("score1"));
Log.i("LOGI", "Score2: " + json.getString("score2"));
Log.i("LOGI", "Turn: " + json.getString("turn"));
Log.i("LOGI", "Game Chosen: " + json.getString("gameChosen"));
//EVERYING BELOW IS THE PROBLEM
player1.add(i, json.getString("player1"));
player2.add(i, json.getString("player2"));
score1.add(i, Integer.parseInt(json.getString("score1")));
score2.add(i, Integer.parseInt(json.getString("score2")));
turn.add(i, Integer.parseInt(json.getString("turn")));
gameChosen.add(i, Integer.parseInt(json.getString("gameChosen")));
}
这是获取数组的代码
private void drawCurrentGames(Canvas canvas){
String player1;
String player2;
String opponent;
int score1;
int score2;
Log.i("LOGI", "WOERKIGN");
for(int i=0; i<Main.games; i++){
//The app crashes here
player1 = Main.player1.get(i);
player2 = Main.player2.get(i);
score1 = Main.score1.get(i);
score2 = Main.score2.get(i);
}
}
当没有使用迭代器设置或获取arraylist时,一切都很好,但是当它是应用程序崩溃时
【问题讨论】:
-
你是否在 UI 线程中发送了 http 请求?
-
@sanemars 它在一个异步任务中
标签: java android list arraylist iterator