[英]Android: How do I retrieve Edittext.getText() in custom AlertDialog?
[英]Android How can I pass GetText from onprexecute to do onBackground
我有2個EditText字段,分別是電子郵件和名稱。 當用戶單擊按鈕時,我在AsyncTask onPreExecute()方法中獲得了這兩個字段的值。 我的問題是我現在如何將該值傳遞給doInBackground()方法並將其插入到String Answers中? 我了解到您不應該將UI項傳遞到doInBackground()中 。 我一直在這里搜索並測試代碼的不同變體,但一直獲取Null值。
private class myprofile extends AsyncTask<String,Void,Boolean> {
@Override
protected void onPreExecute() {
super.onPreExecute();
Email= (EditText)findViewById(R.id.email);
String email= Email.getText().toString();
Name= (EditText)findViewById(R.id.name);
String name= Name.getText().toString();
}
@Override
protected Boolean doInBackground(String... params) {
String email = params[0];
String name = params[1];
String Answers="email="+email+"&name="+name;
return null;
}
// @Override
protected void onPostExecute(Boolean result) {
}
}
有很多方法可以做到這一點。 看起來您已准備好將它們傳遞給execute()
。
1)傳遞給AsyncTask.execute()
String email= Email.getText().toString();
String name= Name.getText().toString();
new myprofile().execute(email, name);
2)傳遞給構造函數
private class myprofile extends AsyncTask<Void,Void,Boolean> {
private String email;
private String name;
public myprofile(String email, String name){
this.email = email;
this.name = name;
}
...
}
String email= Email.getText().toString();
String name= Name.getText().toString();
new myprofile(email, name).execute();
3)檢索onPreExecute()
private String email;
private String name;
protected void onPreExecute() {
super.onPreExecute();
email = Email.getText().toString();
name = Name.getText().toString();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.