这可能是一个我正在努力解决的简单的
Java问题,但是我正在寻求社区帮助我,因为我遇到了这种情况.
我成功地从MySQL数据库中获取数据并通过JSON将其带到应用程序.在解析期间,我试图创建另一个数组以传递到ArrayAdapter以在ListView中使用.这是我遇到问题的代码:
try{
jArray = new JSONArray(result);
JSONObject json_data=null;
for(int i=0;i<jArray.length();i++){
json_data = jArray.getJSONObject(i);
ct_id=json_data.getString("ID");
ct_name=json_data.getString("Player2N");
Games game_data[] = new Games[]
{
new Games(ct_id, ct_name)
};
}
GameAdapter adapter = new GameAdapter(this, R.layout.listview_item_row, game_data);
listView1 = (ListView)findViewById(R.id.listView1);
View header = (View)getLayoutInflater().inflate(R.layout.listview_header_row, null);
listView1.addHeaderView(header);
listView1.setAdapter(adapter);
}
这一行:GameAdapter adapter = new GameAdapter(this,R.layout.listview_item_row,game_data);
更具体地说,game_data在Eclipse中以红色突出显示.我很好奇的是为什么game_data在循环结束后无法触及?我只是想在这里将JSON行中的特定字段添加到适配器中.
我也尝试在设置数组时循环,但仍然没有骰子,因为新的Games []收到错误.这是一个例子:
Games game_data[] = new Games[]
{
for(int i=0;i<jArray.length();i++){
json_data = jArray.getJSONObject(i);
ct_id=json_data.getString("ID");
ct_name=json_data.getString("Player2N");
// Games game_data[] = new Games[]
// {
new Games(ct_id, ct_name);
// };
}
错误:变量必须提供维度表达式或数组初始值设定项.
最佳答案 希望这可以帮助…
try{
jArray = new JSONArray(result);
JSONObject json_data=null;
Games game_data[];
game_data[] = new Games[jArray.length()];
for(int i=0;i<jArray.length();i++){
json_data = jArray.getJSONObject(i);
ct_id=json_data.getString("ID");
ct_name=json_data.getString("Player2N");
game_data[i] = new Games(ct_id, ct_name);
}
GameAdapter adapter = new GameAdapter(this, R.layout.listview_item_row, game_data);
listView1 = (ListView)findViewById(R.id.listView1);
View header = (View)getLayoutInflater().inflate(R.layout.listview_header_row, null);
listView1.addHeaderView(header);
listView1.setAdapter(adapter);
}