现在我有一个数据库表" Content"列#34;标题"和"身体"。
我做了一个PHP休息服务来生成读取的jSON。
{"title":"bbhi"}{"title":"jhene aiko and "}{"title":"123456789101112"}{"title":"cats"}{"title":"drizzy"}
我目前只是想获得头衔。它确实成功获取了我的数据库的所有内容。我不确定这是否是我需要使用的正确形式的jSON。
这是相关的PHP:
$sql = "SELECT title FROM Content ORDER BY id DESC";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$response["title"] = $row["title"];
print(json_encode($response));
}
$response["success"] = 1;
} else {
$response["success"] = 0;
print(null);
}
现在,在Android方面,我正在重新设计一个类似的类,我用来记录用户。它使用GET查询URL并(应该返回)jSON对象。接下来我立即填充了Android ListView(但是它反复使用了同样的东西)。
我需要能够在我的jSON对象中拥有所有标题,并且我希望能够遍历所有标题并填充我的android listview。
这是获取jSON的相关Android类:
getNotes.java
class getNotes extends AsyncTask<String, String, JSONObject> {
JSONParser jsonParser = new JSONParser();
private ProgressDialog pDialog;
private static final String LOGIN_URL = "http://rohanharrison.com/message/androidGetNoteList.php";
private static final String TAG_SUCCESS = "success";
private static final String TAG_MESSAGE = "message";
private static final String TAG_TITLE = "title";
@Override
protected void onPreExecute() {
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setMessage("Fetching Notes...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected JSONObject doInBackground(String... args) {
try {
HashMap<String, String> params = new HashMap<>();
//params.put("name", args[0]);
//params.put("password", args[1]);
Log.d("request", "starting");
JSONObject json = jsonParser.makeHttpRequest(
LOGIN_URL, "GET", params);
if (json != null) {
Log.d("JSON result", json.toString());
return json;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(JSONObject json) {
int success = 0;
String message = "";
ArrayList al = new ArrayList();
if (pDialog != null && pDialog.isShowing()) {
pDialog.dismiss();
}
if (json != null) {
Toast.makeText(MainActivity.this, json.toString(),
Toast.LENGTH_LONG).show();
try {
success = json.getInt(TAG_SUCCESS);
message = json.getString(TAG_MESSAGE);
} catch (JSONException e) {
e.printStackTrace();
}
}
if (json != null) {
Log.d("Success!", message);
final ListView lv = (ListView) findViewById(R.id.notesList);
String[] noteTitle = new String[0];
try {
for (int i = 0; i < 24; i++) {
al.add(json.getString(TAG_TITLE).toString());
}
} catch (JSONException e) {
e.printStackTrace();
}
final List<String> notes_list = new ArrayList<String>(al);
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String> (MainActivity.this, android.R.layout.simple_list_item_1, notes_list);
lv.setAdapter(arrayAdapter);
} else {
Log.d("Failure", message);
}
}
}
对于视觉,这是数据库:http://imgur.com/a/gakgQ.png
这就是Android ListView的样子:http://imgur.com/a/WiRIz.png
我对Android开发和jSON都很陌生,所以我很抱歉我的无知。