0

Я хочу, чтобы передать значения EditText внутри doInBackground AsyncTask, я тридэ этот код:получить значение EditText в doInBackground AsyncTask

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); 

Я прошел параметр в качестве аргументов, но он всегда пустой, я не знаю, почему?

Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно?

ответ

1

Вы загружаете текст с EditText в свой метод onCreate, а не по требованию при нажатии кнопки. Удалите линии, вызывающие 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); 
    } 
}); 
+0

OMG! как глупо я lol! БЛАГОДАРИМ ВАС СМОТРЕТЬ для помощи :)! – LamaTat

Смежные вопросы