2

私はアンドロイド開発が初めてです。私は基本的なアプリを試しています。私の要件は、Android アプリのテキスト ボックスから、POST メソッドを使用してネット上でホストされている PHP ページにデータを送信する必要があることです。この方法に関するチュートリアルのサイトを多数閲覧しましたが、適切なサイトが見つかりませんでした。postメソッドを使用して、Androidアプリの1つのテキストボックスからPHPページにデータを送信するためのサンプルコードを教えてください。前もって感謝します。

4

1 に答える 1

4

このようなもの:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final EditText input = (EditText)findViewById(R.id.yourinput);
    input.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            String text = input.getText().toString();
            new UploadTask().execute(text);
        }
    });
}

private class UploadTask extends AsyncTask<String, Integer, String> {

    private ProgressDialog progressDialog;
    @Override
    protected void onPreExecute() {
        progressDialog = new ProgressDialog(MainActivity.this);
        progressDialog.setMessage("Uploading...");
        progressDialog.setCancelable(false);
        progressDialog.setIndeterminate(true);
        progressDialog.show();
        super.onPreExecute();
    }

    @Override
    protected String doInBackground(String... params) {
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(
                "http://yourwebsite.com/commit.php");

        try {
            // Add your data
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            nameValuePairs
                    .add(new BasicNameValuePair("username", params[0]));

            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

            // Execute HTTP Post Request
            HttpResponse response = httpclient.execute(httppost);
            if (response != null) {
                InputStream in = response.getEntity().getContent();
                String responseContent = inputStreamToString(in);

                return responseContent;
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return null;
    }

    @Override
    protected void onPostExecute(String result) {
        if (progressDialog != null) {
            progressDialog.dismiss();
        }
        // process the result
        super.onPostExecute(result);
    }

    private String inputStreamToString(InputStream is) throws IOException {
        String line = "";
        StringBuilder total = new StringBuilder();

        // Wrap a BufferedReader around the InputStream
        BufferedReader rd = new BufferedReader(new InputStreamReader(is));

        // Read response until the end
        while ((line = rd.readLine()) != null) { 
            total.append(line); 
        }

        // Return full string
        return total.toString();
    }
}
于 2013-11-01T12:58:22.217 に答える