![](/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.