2013-02-21 76 views
0

我想使用asyntask創建httpconnection.three參數發佈到服務器 用戶名,密碼和搜索項目。搜索由用戶在EditText中提供,以便當用戶單擊按鈕時中,搜索項被髮送到server.I想要執行在OnclickListener的doInbackground()方法和顯示來自上listviews.This服務器的響應是的AsyncTask類AsyncTask Android中的HttpConnection

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()的服務器結果? 謝謝。

回答

0

創建一個onPostExecute方法以在您的textview上顯示結果。

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