我认为TextViews没有向我显示它从mySQL数据库中检索到的任何数据,这很奇怪。这是我的代码:
这是关键的解析位,我有两列需要解析并放入单独的TextView,我认为我已经做过了:
//PARSING JSON DATA
try {
jArray = new JSONArray(result);
for (int i = 0; i < jArray.length(); i++) {
JSONObject json_data = jArray.getJSONObject(i);
Log.i("log_name", "Driver_full_name:" + json_data.getString("Driver_full_name"));
Log.i("log_for", "Drives for:" + json_data.getString("Drives_for"));
returnString += "\n\t" + jArray.getJSONObject(i);
somethingelse += "\n\t" + jArray.getJSONObject(i);
}
} catch (JSONException e1) {
Log.d("DB", "Error somewhere");
CurrentSeasonDrivers_DriverName.this.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(CurrentSeasonDrivers_DriversName, "Could not parse data so shut up",
Toast.LENGTH_LONG).show();
}
});
}
return returnString += somethingelse;
}
protected void onPostExecute(String returnString, String somethingelse) {
TextView drivername = (TextView) findViewById(R.id.DriverName);
drivername.setText(drivername.getText() + "\n" + returnString);
TextView drivesfor = (TextView) findViewById(R.id.DrivesFor);
drivesfor.setText(drivesfor.getText() + "\n" + somethingelse);
}
}
}
希望有人可以提供帮助。考虑到没有错误。解析位中的日志显示完全解析的数据,但是onPostExecute中的日志再次显示它未解析,或者至少在每行周围都有大括号和语音标记。
感谢您的帮助。真的很感激。
答案 0 :(得分:0)
看起来您正在使用日志的getString
方法解析JSON,但是将整个JSON填充到用于设置文本的字符串中。除非这些步骤之间存在某些不在此处的内容,否则我认为您需要做的是在追加到returnString和somethingElse时使用getString
方法。
答案 1 :(得分:0)
您的onPostExecute
方法是否被调用?签名错误,不能带两个参数。
您应该传递一个String数组(当然,更改您的AsyncTask
类声明以使用onPostExecute
中的String数组):
...
return new String[] {returnString, somethingelse};
}
protected void onPostExecute(String[] strings) {
String returnString = strings[0];
String somethingelse = strings[1];
}