Android:将JSON数据加载到适配器中

这可能是一个我正在努力解决的简单的
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);

}

点赞