2012-10-10 51 views
2

我的项目是在运行的代码不工作,我的代码从服务器获取和显示在列表视图放JSON数据:解析JSON数据并显示在列表视图

public void onCreate(Bundle savedInstanceState) 
{ 

    super.onCreate(savedInstanceState); 

    setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, this.datadrinks())); 

} 
public ArrayList<String> datadrinks() 
{ 
    ArrayList<String> listItems = new ArrayList<String>(); 
    try { 
     URL twitter = new URL("http://10.0.2.2:50667/expression%20web4/GetAllDrinkItems.ashx"); 
     URLConnection tc = twitter.openConnection(); 
     BufferedReader in = new BufferedReader(new InputStreamReader(
       tc.getInputStream())); 

     String line; 
     while ((line = in.readLine()) != null) { 
      JSONObject ja = new JSONObject(line); 
      JSONArray jobj=ja.getJSONArray("lstDrinkItems"); 

     for (int i = 0; i < jobj.length(); i++) { 
      JSONObject jo = jobj.getJSONObject(i); 
      listItems.add(jo.getString("Name")); 
     } 
     } 
    }catch (MalformedURLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (JSONException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     return listItems; 

    } 
} 
+0

你有什么问题? –

+0

你得到的结果在哪里?如果你显示结果的解析问题可以找到? –

+0

参考以下链接[在listview中显示jsondata](http://www.androidhive.info/2012/01/android-json-parsing-tutorial/) – Harish

回答

0

我找不到明显的错误你的代码。

但是你在设计中遇到了很大的问题。您正在UI线程上发出服务器请求。你永远不应该那样做。在较新版本的Android上,您甚至不允许这样做。

你应该使用专门的类象AsyncTask

  • doInBackground:发出请求和解析响应
  • onPostExecute:填充ListView

希望这可以帮助你在你的未来项目!

相关问题