如何使用php服务填充Android列表视图?

时间:2016-07-09 06:05:32

标签: php android json listview

现在我有一个数据库表" 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都很陌生,所以我很抱歉我的无知。

0 个答案:

没有答案