1

ローカルホストからデータを取得するのに苦労しています。私はxamppを使用しています。私が欲しいのは、ローカルホストからアンドロイド携帯のリストビューにデータを表示することです。これは、ローカルホストとアンドロイドについて議論するネットで見つけた基本的なコードです。ここにスニペットがあります:

p

ublic class Database_demo extends ListActivity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        String result = null;
        InputStream is = null;
        StringBuilder sb = null;
        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
        List<String> r = new ArrayList<String>();

        try{

        //http post
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://10.0.2.2/android_connect3/");
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
        is = entity.getContent();
        }
        catch(Exception e){
            Toast.makeText(getBaseContext(),e.toString() ,Toast.LENGTH_LONG).show();
       }

        //Convert response to string  
        try
        {
          BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"));

          sb = new StringBuilder();

          String line = null;

          while ((line = reader.readLine()) != null) 
          {
             sb.append(line + "\n");
          }

          is.close();

          result = sb.toString();
        }
        catch(Exception e)
        {
            Toast.makeText(getBaseContext(),e.toString() ,Toast.LENGTH_LONG).show();
        }
        //END Convert response to string   
        try{
                JSONArray jArray = new JSONArray(result);
                JSONObject json_data=null;
                for(int i=0;i<jArray.length();i++)
                {
                   json_data = jArray.getJSONObject(i);
                   r.add(json_data.getString("reg"));
               }
               setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, r));
            }
            catch(JSONException e1){
                Toast.makeText(getBaseContext(),e1.toString() ,Toast.LENGTH_LONG).show();
            } catch (ParseException e1) {
                Toast.makeText(getBaseContext(),e1.toString() ,Toast.LENGTH_LONG).show();
        }

    }
}

そして、ここに私のPHPファイルがあります:

<?php
mysql_connect('localhost','root','');
mysql_select_db('android_sql');
$sql = "select * from reg";
$query = mysql_query($sql);

while($row = mysql_fetch_assoc($query)){
$output[] = $row;
}
print (json_encode($output));
mysql_close();


?>

これは私の例外です: http://pastebin.com/QZkfG0bp

4

2 に答える 2

1

私はそれを手に入れました..これが私がした方法です。

    InputStream is;
    String result;

    StringBuilder sb;
    @Override
    public void onCreate(Bundle savedInstanceState) {

  }

私はそれらをグローバルとして宣言し、それらに割り当てられたnull値を削除します

于 2012-07-06T08:10:05.147 に答える
0

この行を確認する必要があります

HttpPost httppost = new HttpPost("http://10.0.2.2/android_connect3/");

への変更

HttpPost httppost = new HttpPost("http://10.0.2.2/android_connect3/your_php_file_name");
于 2012-07-05T10:24:53.057 に答える