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()からサーバーの結果を表示するにはどうすればよいですか?ありがとうございました。