Android が初めてで、ボタンがクリックされたときに検索項目 (ユーザーによって EditText に提供される) をサーバーに投稿する Android アプリを開発しています。項目はサーバーに投稿されます。Asynctask クラスを使用しています。 findViewById(未定義です)。私の問題は、onclickメソッドを配置する場所とビューの参照です。コードは次のとおりです
public class Server_Post extends AsyncTask<String, Void, String> {
private static final int REGISTRATION_TIMEOUT = 3 * 1000;
private static final int WAIT_TIMEOUT = 30 * 1000;
private final HttpClient httpclient = new DefaultHttpClient();
final HttpParams params = httpclient.getParams();
HttpResponse response;
Button Submit = (Button) findViewById(R.id.submitButton);
EditText textvalue = (EditText)findViewById(R.id.searcheditText);
//Onclick Listener
Submit.setOnClickListener(onClickListener)
private OnClickListener onClickListener = new OnClickListener() {
@Override
public void onClick(final View v) {
switch(v.getId()){
case R.id.submitButton:
break;
}
};
protected void onPreExecute() {
//any code
}
@Override
protected String doInBackground(String... arg0) {
String URL = "url";
String username = "abc";
String password = "xyz";
try {
HttpConnectionParams.setConnectionTimeout(params, REGISTRATION_TIMEOUT);
HttpConnectionParams.setSoTimeout(params, WAIT_TIMEOUT);
ConnManagerParams.setTimeout(params, WAIT_TIMEOUT);
HttpPost httpPost = new HttpPost(URL);
//Any other parameters you would like to set
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("username",username));
nameValuePairs.add(new BasicNameValuePair("password",password));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
//Response from the Http Request
response = httpclient.execute(httpPost);
StatusLine statusLine = response.getStatusLine();
//Check the Http Request for success
if(statusLine.getStatusCode() == HttpStatus.SC_OK){
ByteArrayOutputStream out = new ByteArrayOutputStream();
response.getEntity().writeTo(out);
out.close();
}
else{
//Closes the connection.
Log.w("HTTP1:",statusLine.getReasonPhrase());
response.getEntity().getContent().close();
throw new IOException(statusLine.getReasonPhrase());
}
} catch (ClientProtocolException e) {
} catch (IOException e) {
}catch (Exception e) {
}
return null;
}
protected void onCancelled() {
}
protected void onPostExecute(String content) {
}
private void connecttopostdata() {
Server_Post task = new Server_Post();
task.execute(textvalue.getText().toString());
}
}
応答は xml にあり、リストビューにも応答を表示したいと考えています。前もって感謝します。