簡體   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