![](/img/trans.png)
[英]How can i use EditText to get a parameter in doInbackGround (AsyncTask)?
[英]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.