2013-04-03 19 views
0

我想從JSON。我拿到冠軍了字符串值(使用調試器檢查),但同時在下拉列表中微調誤差上市之際,錯誤的同時單擊下拉在紗廠在Android的

04-03 13:25:07.528: E/AndroidRuntime(663): 
java.lang.IllegalStateException: ArrayAdapter requires the resource ID 
to be a TextView 04-03 13:25:07.528: E/AndroidRuntime(663):at 
android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:347) 

04-03 13:25:07.528: E/AndroidRuntime(663):  at 
android.widget.ArrayAdapter.getView(ArrayAdapter.java:323) 

等等......我需要爲這個查詢一個完美的解決方案.........

class coursesJson extends AsyncTask<String, Void, String> { 

     protected void onPostExecute(String coursesJSON) { 

      coursesArray=new JSONArray(); 
      try { 

       coursesArray = new JSONArray(coursesJSON); 

      } catch (JSONException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

      for (int i = 0; i < coursesArray.length(); i++) { 

      try { 
       String title = coursesArray.getJSONObject(i).getString(
         "Title"); 
       ArrayList<String> Title = new ArrayList<String>(); 
       Title.add(title); 

       Log.d("Title",title); 

       ArrayAdapter<String> coursesAdapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.registeration,Title); 
        coursesAdapter.setDropDownViewResource(android.R.layout.activity_list_item); 
        spinner.setSelection(Title.indexOf(title)); 
        spinner.setAdapter(coursesAdapter); 
      } catch (JSONException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
     } 
    } 

     public String getStringContent(String uri) throws Exception { 

     try { 
      HttpClient client = new DefaultHttpClient(); 
      HttpGet request = new HttpGet(); 
      request.setURI(new URI(uri)); 
      HttpResponse response = client.execute(request); 
      InputStream ips = response.getEntity().getContent(); 
      BufferedReader buf = new BufferedReader(new InputStreamReader(ips, 
        "UTF-8")); 

      StringBuilder sb = new StringBuilder(); 
      String s; 
      while (true) { 
       s = buf.readLine(); 
       if (s == null || s.length() == 0) 
        break; 
       sb.append(s); 

      } 
      buf.close(); 
      ips.close(); 
      return sb.toString(); 

     } finally { 
      // any cleanup code... 
     } 
    } 
+0

使用這種adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item ); –

回答

0

由於錯誤說你試圖用一個錯誤的資源ID 。例如使用

android.R.layout.simple_spinner_dropdown_item 

代替

android.R.layout.activity_list_item 

coursesAdapter.setDropDownViewResource(android.R.layout.activity_list_item); 
0

嘗試使用這樣的:

ArrayAdapter<String> coursesAdapter = new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_spinner_dropdown_item, Title); 
spinner.setAdapter(coursesAdapter);