0

phpMyAdmin にデータベースがあります。ListViewテーブルから情報を取得し、それを使用して Android アプリに入力したいと考えています。

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();
    }
?>

そしてListView、Androidで作成しました。情報を取得してリストに追加するにはどうすればよいですか?

4

2 に答える 2

0

PHP ファイルが正しい JSON を出力すると仮定します。次のステップでは、URL を呼び出して、HttpGet でこの JSON にアクセスします。これにより、文字列としての JSON である応答が返されます。

この応答を解析する必要があります。そのために「gson」を使用できます。その結果、いくつかのリスト、オブジェクト、またはデータベースを入力し、それを使用して ListView を入力できます。

于 2013-03-08T15:33:20.453 に答える
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 に入れることができます

于 2013-03-08T15:36:27.683 に答える