我想运行“Http异步任务”......我该怎么办?

时间:2013-07-21 03:46:32

标签: java android parameters

public class Join extends Activity {

EditText id = (EditText)findViewById(R.id.id);
EditText password = (EditText)findViewById(R.id.password);
EditText name = (EditText)findViewById(R.id.name);
EditText phone =(EditText)findViewById(R.id.phone);
Button join = (Button)findViewById(R.id.join);



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    if(android.os.Build.VERSION.SDK_INT>9){
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
    }

    join.setOnClickListener(new OnClickListener() {   

        @Override
        public void onClick(View arg0) {

            String get_id = id.getText().toString();
            String get_password = password.getText().toString();
            String get_name = name.getText().toString();
            String get_phone = phone.getText().toString();



            // I want put in here HttpPostAsyncTask.


        }
    });
}




class HttpPostAsyncTask extends AsyncTask<String,Integer,Long>{
    @Override 
    protected Long doInBackground(String... params){
        String id = params[0];
        String password = params[1];
        String name = params[2];
        String phone = params[3];

        try{
            HttpClient client = new DefaultHttpClient();
            String postUrl = "http://vv9863.dothome.co.kr/member.php";
            HttpPost post = new HttpPost(postUrl);
            List params2 = new ArrayList();
            params2.add(new BasicNameValuePair("id",id));
            params2.add(new BasicNameValuePair("password",password));
            params2.add(new BasicNameValuePair("name",name));
            params2.add(new BasicNameValuePair("phone",phone));

            UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params2,HTTP.UTF_8);
            post.setEntity(ent);
            HttpResponse responsePost = client.execute(post);
            HttpEntity resEntity = responsePost.getEntity();

            if(resEntity!=null){
                Log.w("Response",EntityUtils.toString(resEntity));
            }       
        } catch(MalformedURLException e){

        } catch(IOException e){

        }
        return null;


    }
}

}

您好。我是android develop的初学者。

在这段代码中,我想在两个条件中使用“HttpAsyncTask”:

  1. 有参数“get_id”,“get_password”,“get_name”,“get_phone”
  2. 按下“加入”按钮时运行
  3. ..我该怎么办..?

2 个答案:

答案 0 :(得分:0)

将以下行添加到onClickListener:

new HttpPostAsyncTask().execute(get_id, get_password, get_name, get_phone);

有关详细信息,请参阅http://developer.android.com/reference/android/os/AsyncTask.html

答案 1 :(得分:0)

为您提供建议

  • 不要初始化ui元素作为u初始化(Oncreate(..)方法的外侧)在调用setContentView(R.layout.main)之后初始化,否则这将给出nullPointer Exception

   public class Join extends Activity {

     EditText id;
     EditText password ;
     EditText name ;
     EditText phone ;
     Button join;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);


        id = (EditText)findViewById(R.id.id);
        password = (EditText)findViewById(R.id.password);
        name = (EditText)findViewById(R.id.name);
        phone =(EditText)findViewById(R.id.phone);
        join = (Button)findViewById(R.id.join);
    }