2013-03-11 3 views
0

У меня есть JSONArray ["category_1", "category_2", "category_3"], и я не получаю данные. И как я установил эти данные в spinner или listview в Android.Как получить JSONArray с http Url и как установить JSONArray для spinner в android?

E:

где неисправности?

public class MainActivity extends Activity { 

    String urlCat = "http://tvapp.pcrevue.sk/categories.json"; 

    Spinner spinner; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     try { 
      JSONArray jsonArray; 
      jsonArray = getJSONArrayFromUrl(urlCat); 

      final String[] array_spinner = new String[jsonArray.length()]; 

      //int show_total = jsonArray.length(); 

      //Toast.makeText(flash_tattoo.this, show_total + "test", Toast.LENGTH_LONG).show(); 

      for (int i=0; i<jsonArray.length(); i++) 
      { 
       String styleValue = jsonArray.getJSONArray(0).getString(i); 
       array_spinner[i] = styleValue; 

      } 
      ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item,array_spinner); 

      adapter.setDropDownViewResource(R.layout.activity_main); 
      spinner.setAdapter(adapter); 


     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 


    } 

    public JSONArray getJSONArrayFromUrl(String url) { 
     InputStream is = null; 
     JSONArray jObj = null; 
     String json = ""; 
     // Making HTTP request 
     try { 
      // defaultHttpClient 
      DefaultHttpClient httpClient = new DefaultHttpClient(); 
      HttpGet httpGet = new HttpGet(url); 

      HttpResponse httpResponse = httpClient.execute(httpGet); 
      HttpEntity httpEntity = httpResponse.getEntity(); 
      is = httpEntity.getContent(); 

     } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
     } catch (ClientProtocolException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     try { 
      BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1")); 
      StringBuilder sb = new StringBuilder(); 
      String line = null; 
      while ((line = reader.readLine()) != null) { 
       //json += line; 
       sb.append(line + "\n"); 
      } 
      is.close(); 
      json = sb.toString(); 
     } catch (Exception e) { 
      Log.e("Buffer Error", "Error converting result " + e.toString()); 
     } 

     // try parse the string to a JSON object 
     try { 
      jObj = new JSONArray(json); 
     } catch (JSONException e) { 
      Log.e("JSON Parser", "Error parsing data " + e.toString()); 
     } 

     // return JSON String 
     return jObj; 

    } 
}  
+0

для JSon взгляда массива на [это] [1] может помочь [1]: http://stackoverflow.com/questions/1568762/accessing-members-of-items-in-a- jsonarray-with-java – Nantaphop

ответ

1

Вам нужно будет разобрать Json на объекты. Here - это некоторые способы сделать это. Затем вам нужно будет создать ArrayListAdapter и заполнить его с помощью arraylist, см. here. Вот и все.

Редактировать: Для создания JsonArray вместо этого см. Здесь для указания строки в конструкторе JSONArray.

+0

У меня нет JSONObject, но у меня есть JSONArray. Посмотрите на http://tvapp.pcrevue.sk/categories.json –

+0

Пожалуйста, не могли бы вы написать пример кода. Я не знаю, представьте. –

Смежные вопросы