0

asyntaskを使用してhttpconnectionを作成したい。3つのパラメーターがサーバーのユーザー名、パスワード、および検索アイテムに投稿されます。ユーザーがボタンをクリックすると検索アイテムがに送信されるように、ユーザーがEditTextで検索を提供します。 server.OnclickListenerでdoInbackground()メソッドを実行し、サーバーからの応答をリストビューに表示したい。これはAsyncTaskクラスです。

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;    
}

これは、クリックイベントが呼び出されるクラスです

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;   
         }  
     }
 };
}

質問1.投稿が機能していないように見えるので、何が間違っていますか?onPostExecute()からサーバーの結果を表示するにはどうすればよいですか?ありがとうございました。

4

1 に答える 1

0

テキストビューに結果を表示する onPostExecute メソッドを作成します。

protected onPostExecute (String result){
   TextView tv = (TextView) findViewById(R.id.textview1);
   if(result != null){
      tv.setText(result);
   }
}
于 2013-09-24T10:05:32.760 に答える