2013-02-21 3 views
0

Je veux créer httpconnection en utilisant asyntask.three paramètres sont affichés sur le serveur nom d'utilisateur, mot de passe et un élément de recherche.la recherche est fournie par l'utilisateur dans un EditText tel que lorsque l'utilisateur clique sur un bouton , l'élément de recherche est envoyé à l'server.I voulez exécuter la méthode doInbackground() dans le OnclickListener et afficher la réponse du serveur sur listviews.This est le AsyncTask classeAsyncTask HttpConnection dans Android

public class PostToServer extends AsyncTask<String, Void, String> { 

@Override 
protected void onPostExecute(String result) { 

} 

@Override 
protected String doInBackground(String... arg0) { 
    try { 
     HttpClient client = new DefaultHttpClient(); 
     String postURL = "url"; 
     String username ="username"; 
     String password = "password"; 

     HttpPost post = new HttpPost(postURL); 
      List<NameValuePair> params = new ArrayList<NameValuePair>(); 
      params.add(new BasicNameValuePair("user", username)); 
      params.add(new BasicNameValuePair("pass", password)); 
      UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params,HTTP.UTF_8); 
      post.setEntity(ent); 
      HttpResponse responsePOST = client.execute(post); 
      HttpEntity resEntity = responsePOST.getEntity(); 

      if (resEntity != null) {  
       Log.i("RESPONSE",EntityUtils.toString(resEntity)); 
      } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return null;  
} 

Cette classe où le clic l'événement est appelé

public class StartPost extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.result_page); 
} 
    Button Submit = (Button) findViewById(R.id.btn_search); 
    EditText textvalue = (EditText)findViewById(R.id.searcheditText); 
    String value = textvalue.getText().toString(); 
    PostToServer post = new PostToServer(); 
    CheckInternetConnection check = new CheckInternetConnection(null); 

private OnClickListener click = new OnClickListener() { 
    @Override 
    public void onClick(final View v) { 
     switch(v.getId()){ 
      case R.id.btn_search: 
       post.execute(); 
       break; 
     } 
    } 
}; 
} 

Questions 1.Qu'est-ce que je fais de mal parce qu'il semble que le message ne fonctionne pas et Comment puis-je afficher les résultats du serveur de l'onPostExecute()? Merci.

Répondre

0

Créez une méthode onPostExecute pour afficher les résultats sur votre vue texte.

protected onPostExecute (String result){ 
    TextView tv = (TextView) findViewById(R.id.textview1); 
    if(result != null){ 
     tv.setText(result); 
    } 
}