简体   繁体   中英

Get text from EditText and send with HttpPost in Android

public void onActivityResult(int requestCode, int resultCode, Intent intent) {

    if (requestCode == SCANNER_REQUEST_CODE) {
        // Handle scan intent
        if (resultCode == Activity.RESULT_OK) {
            // Handle successful scan
            String contents = intent.getStringExtra("SCAN_RESULT");
            String formatName = intent.getStringExtra("SCAN_RESULT_FORMAT");
            byte[] rawBytes = intent.getByteArrayExtra("SCAN_RESULT_BYTES");
            int intentOrientation = intent.getIntExtra("SCAN_RESULT_ORIENTATION", Integer.MIN_VALUE);
            Integer orientation = (intentOrientation == Integer.MIN_VALUE) ? null : intentOrientation;
            String errorCorrectionLevel = intent.getStringExtra("SCAN_RESULT_ERROR_CORRECTION_LEVEL");
            mBarcodeEdit.setText(contents + "\n\n" + formatName);
            tvScanResults.setText(contents + "\n\n" + formatName);

        } else if (resultCode == Activity.RESULT_CANCELED) {
            // Handle cancel

        }
    } else {
        // Handle other intents
    }

}

Now I am getting the scanned barcode into edittext as well as in textview, but I want to upload the result to the server. I'll post the AsyncTask module below:

        public void send1(View v){
               new Send().execute();

          }
            class Send extends AsyncTask<String, Void,Void > {

 HttpClient httpclient;
 HttpPost httppost;
String msg = mBarcodeEdit.getText().toString().trim(); 
           protected Void doInBackground(String... urls) {
        // TODO Auto-generated method stub
         // get the message from the message text box
//   String msg = mBarcodeEdit.getText().toString().trim();
        //Toast.makeText(getBaseContext(),"u clicked           mee",Toast.LENGTH_SHORT).show();
        // make sure the fields are not empty
       if (msg.length()>0)
        {

            httpclient = new DefaultHttpClient();
            httppost = new HttpPost("http://yourwebsite.com/yourPhpScript.php"); // sever id
         try {
           List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
           nameValuePairs.add(new BasicNameValuePair("id", "12345"));
           nameValuePairs.add(new BasicNameValuePair("message", msg));
           httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
           httpclient.execute(httppost);

         } catch (ClientProtocolException e) {
             // TODO Auto-generated catch block
         } catch (IOException e) {
             // TODO Auto-generated catch block
         }
        }
        else
        {
            // display message if text fields are empty
            //Toast.makeText(getBaseContext(),"All field are required",Toast.LENGTH_SHORT).show();
        }
    return null;
        }}

   protected void onProgressUpdate(Void... progress) {

          }

        protected void onPostExecute(Void result) {
            mBarcodeEdit.setText(""); // clear text box
         }
          }

Consider using volley for client-server communication. It's google recommended and most importantly easy to use and takes care of hitting the server in background. If you want to know how to use volley check this out. http://www.androidhive.info/2014/05/android-working-with-volley-library-1/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM