2012-05-03 26 views
6

Ciao Sto usando due pulsanti che nella finestra di dialogo selettore Fare clic su Mostra data e dialogo raccoglitrice di tempo. Ho uno spinner.Come inviare richiesta di richiesta HTTP POST al server

Voglio inviare il valore di input utente a un server php. Cosa devo fare per il codice lato client?

Ecco il mio codice:

public class DineOutActivity extends Activity { 

    private TextView mDateDisplay; 
    private Button mPickDate; 
    private int mYear; 
    private int mMonth; 
    private int mDay; 
    /******************time picker**************/ 
     private TextView mTimeDisplay; 
      private Button mPickTime; 
      private int mHour; 
      private int mMinute; 
      private int mAmPm; 

      static final int TIME_DIALOG_ID=1; 

     static final int DATE_DIALOG_ID = 0; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     /********************spinner***********/ 

     Spinner food = (Spinner) findViewById(R.id.spinner1); 
     ArrayAdapter<CharSequence> foodadapter = ArrayAdapter.createFromResource(
        this, R.array.item_array, android.R.layout.simple_spinner_item); 
     foodadapter.setDropDownViewResource(R.layout.spinner_layout); 
     food.setAdapter(foodadapter); 
     /**pick date*/ 

     mDateDisplay = (TextView) findViewById(R.id.textView2); 
     mTimeDisplay = (TextView) findViewById(R.id.textView4); 
     mPickDate = (Button) findViewById(R.id.button2); 
     /**pick time**/ 

     mPickTime=(Button)findViewById(R.id.button3); 

     // add a click listener to the button 
     mPickTime.setOnClickListener(new View.OnClickListener() { 

        public void onClick(View v) { 

          showDialog(TIME_DIALOG_ID); 
        } 
       }); 

     // get the current time 
     final Calendar c=Calendar.getInstance(); 
     mHour=c.get(Calendar.HOUR_OF_DAY); 
     mMinute=c.get(Calendar.MINUTE); 
     mAmPm = c.get(Calendar.AM_PM); 

     // display the current date 
     upTimeDisplay(); 


/*****************************pick date***********************************/ 
     // add a click listener to the button 
     mPickDate.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v1) { 
       showDialog(DATE_DIALOG_ID); 
      } 
     }); 

     // get the current date 
     final Calendar date = Calendar.getInstance(); 
     mYear = date.get(Calendar.YEAR); 
     mMonth = date.get(Calendar.MONTH); 
     mDay = date.get(Calendar.DAY_OF_MONTH); 
     int mDst = date.get(Calendar.AM_PM); 
     int mAmPm = date.get(Calendar.DST_OFFSET); 

     // display the current date (this method is below) 
     updateDisplay(); 
    } 

    // updates the date in the TextView 




    private void upTimeDisplay() 
    { 
    // mTimeDisplay.setText(new 
      // StringBuilder().append(pad(mHour)).append(":").append(pad(mMinute)).append(pad(mAmPm))); 
     mTimeDisplay.setText(new 
        StringBuilder().append(mHour).append(":").append(mMinute)); 
     mTimeDisplay.setTextColor(R.color.green); 
    } 
    /** private Object pad(int mMinute2) { 

     if(mMinute2>=10) 
       return String.valueOf(mMinute2); 
     else 
       return "0"+String.valueOf(mMinute2); 
}**/ 

    private TimePickerDialog.OnTimeSetListener mtimeSetListener=new 
      TimePickerDialog.OnTimeSetListener() { 

public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 

mHour=hourOfDay; 
mMinute=minute; 
int ampm; 

upTimeDisplay(); 
} 
}; 


    private void updateDisplay() { 
     mDateDisplay.setText(new StringBuilder() 
        // Month is 0 based so add 1 
        .append(mMonth + 1).append("-") 
        .append(mDay).append("-") 
        .append(mYear).append(" ")); 
     mDateDisplay.setTextColor(R.color.green); 
       // .append(mHour).append("_") 
        // .append(mMinute).append("_"))); 
    } 

    // the callback received when the user "sets" the date in the dialog 
    private DatePickerDialog.OnDateSetListener mDateSetListener = 
      new DatePickerDialog.OnDateSetListener() { 

       public void onDateSet(DatePicker view, int year, 
             int monthOfYear, int dayOfMonth) { 
        mYear = year; 
        mMonth = monthOfYear; 
        mDay = dayOfMonth; 
        updateDisplay(); 
       } 
      }; 

    @Override 
    protected Dialog onCreateDialog(int id) { 
     switch (id) { 
     case DATE_DIALOG_ID: 
      return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, 
        mDay); 

     case TIME_DIALOG_ID: 
      return new TimePickerDialog(this,mtimeSetListener,mHour,mMinute,false); 
     } 
     return null; 
    } 

Sto usando mPickDate come il pulsante che si apre ad un DatePickerDialog mPickTime come il bottone che al clic si apre TimePicker Dialog Uno Spinner (spinner1) per ottenere l'elenco dei articolo. mDateDisplay per mostrare la data che viene modificata dall'utente dopo aver fatto clic su DatePickerDialog. mTimeDisplay per visualizzare l'ora, che viene modificato dall'utente dopo aver fatto clic TimePickerDialog.

Voglio che i valori di stringa di input dell'utente di DatePickerDialog, TimePickerDialog e filatore di inviare al server come post HTTP. Per favore dimmi come fare? Voglio il codice di dettaglio.

risposta

7
public void postData() { 

    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("http://www.yoursite.com/script.php"); 

    try { 
     // Add your data 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
     nameValuePairs.add(new BasicNameValuePair("text", "blablabla")); 
     nameValuePairs.add(new BasicNameValuePair("date", "yourdate")); 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     HttpResponse response = httpclient.execute(httppost); 

    } catch (ClientProtocolException e) { 
     // TODO Auto-generated catch block 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
    } 
} 
+0

dispiace ma dove andremo a ottenere il NameValuePair dal input dell'utente, voglio dire come intende mappare con le finestre di dialogo e filatore. – divaNilisha

+0

anche memorizzerà la data e l'ora in assistente come faccio a rendere il formato a "AAAA/MM/DD" o "GG/MM/AAAA" – divaNilisha

+5

ha scritto questo codice da lei? In nessun modo mi stai chiedendo questo ¬¬ –

3
// Create a new HttpClient and Post Header 
    String downloadedString= null; 

    HttpClient httpclient = new DefaultHttpClient(); 


    //for registerhttps://te 
    HttpPost httppost = new HttpPost("url here"); 
    //add data 
    try{ 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(7); 
     nameValuePairs.add(new BasicNameValuePair("firstname", "harsh")); 
     nameValuePairs.add(new BasicNameValuePair("lastname", "chandel")); 
     nameValuePairs.add(new BasicNameValuePair("email", "[email protected]")); 
     nameValuePairs.add(new BasicNameValuePair("phone", "944566778")); 
     nameValuePairs.add(new BasicNameValuePair("username", "mikebulurt")); 
     nameValuePairs.add(new BasicNameValuePair("password", "qwert")); 
     nameValuePairs.add(new BasicNameValuePair("device_duid", "986409987")); 

     //add data 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     // Execute HTTP Post Request 
     HttpResponse response = httpclient.execute(httppost); 

     InputStream in = response.getEntity().getContent(); 
     StringBuilder stringbuilder = new StringBuilder(); 
     BufferedReader bfrd = new BufferedReader(new InputStreamReader(in),1024); 
     String line; 
     while((line = bfrd.readLine()) != null) 
      stringbuilder.append(line); 

     downloadedString = stringbuilder.toString(); 

    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    System.out.println("downloadedString:in login:::"+downloadedString); 


    return downloadedString; 
Problemi correlati