繁体   English   中英

在doInBackground AsyncTask中获取EditText值

[英]get EditText value in doInBackground AsyncTask

我想在doInBackground AsyncTask内部传递Edittext的值,我整理一下这段代码:

    protected void onCreate(Bundle savedInstanceState) {
    ID = (EditText) findViewById(R.id.ID);
    lname = (EditText) findViewById(R.id.lname);
    fname = (EditText) findViewById(R.id.fname);
    phone = (EditText) findViewById(R.id.phone);
    H = ID.getText().toString();
    Q = lname.getText().toString();
    C = fname.getText().toString();
    Ls = phone.getText().toString();

    addbtn = (Button) findViewById(R.id.addbtn);
    addbtn.setOnClickListener(new View.OnClickListener() {

        public void onClick(View arg0) {
        new CreateNewexercise().execute(H,Q,C,Ls);
    }
    });
}

class CreateNewexercise extends AsyncTask<String, String, String> {
    /**
     * Creating exercise
     */
    protected String doInBackground(String... args) {
        //getting field's text
        id=args[0];
        ln=args[1];
        fn=args[2];
        p=args[3];

        // Building Parameters
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("ID", id));
        params.add(new BasicNameValuePair("lname", ln));
        params.add(new BasicNameValuePair("fname",fn));
        params.add(new BasicNameValuePair("phone", p));
        Log.d("ID", "Value: " + id);
        Log.d("lname", "Value: " + ln);
        Log.d("fname", "Value: " + fn);
        Log.d("phone", "Value: " + p);

我将参数作为参数传递,但始终为空,我不知道为什么?

有人可以告诉我我在做什么错吗?

您是在onCreate方法中从EditText加载文本,而不是在单击按钮时按需加载。 OnClickListener外部删除调用getText()OnClickListener ,并将其添加到内部。

addbtn.setOnClickListener(new View.OnClickListener() {
    public void onClick(View arg0) {
        H = ID.getText().toString();
        Q = lname.getText().toString();
        C = fname.getText().toString();
        Ls = phone.getText().toString();
        new CreateNewexercise().execute(H,Q,C,Ls);
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM