我想从 JSON 中获取 Title 字符串。我得到了值(使用 Debugger 检查)但是在微调器错误中的下拉列表中列出时
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...
}
}