从phpMyAdmin填充ListView

时间:2013-03-08 15:17:26

标签: php android json

我在phpMyAdmin中有一个数据库。我想从表中获取信息并使用它来填充我的Android应用中的ListView

我创建了一个PHP文件:

<?php

$host="localhost";
$user="root";
$pass="";
$dbname="ltc";

$con= mysql_connect($host,$user,$pass);
$BD= mysql_select_db($dbname, $con);

$query=mysql_query("select * from posts");
$num=mysql_num_rows($query);

if($num==1)
{
    while($list=mysql_fetch_assoc($query))
    {
        $output=$list;
        echo json_encode($output);
    }
        mysql_close();
    }
?>

我在Android中创建了ListView。如何获取信息并将其列入清单?

2 个答案:

答案 0 :(得分:0)

假设您的PHP文件输出正确的JSON;您的后续步骤将调用URL以使用HttpGet访问此JSON。这将返回一个响应,即JSON作为字符串。

您必须解析此回复。你可以使用'gson'。 由此可以填充一些列表,对象或数据库,并使用它来填充ListView。

答案 1 :(得分:0)

您可以使用以下方法调用您的php页面:

         public static String getWebData(String url) {
            HttpParams httpParameters = new BasicHttpParams();
            // Set the timeout in milliseconds until a connection is established.
            // The default value is zero, that means the timeout is not used. 
            int timeoutConnection = 3000;
            HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
            // Set the default socket timeout (SO_TIMEOUT) 
            // in milliseconds which is the timeout for waiting for data.
            int timeoutSocket = 5000;
            HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);

             // Create a new HttpClient and Post Header
            HttpClient httpclient = new DefaultHttpClient(httpParameters);

            HttpGet httpgett = null;

                httpgett = new HttpGet(url);


        String result="";
            try {


                // Execute HTTP Post Request
                HttpResponse response = httpclient.execute(httpgett);
                int status = response.getStatusLine().getStatusCode();
                result = EntityUtils.toString(response.getEntity());

            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                System.out.println("--->" + "ClientProtocolException" + e.getMessage());
                return "";
            } catch (IOException e) {
                // TODO Auto-generated catch block
                return "";
            } catch (Exception e) {
                // TODO Auto-generated catch block
                return "";
            }


                return result;
            }

您拥有数据,可以将其放入ListView