【发布时间】:2018-10-07 13:46:50
【问题描述】:
我有一个简单的测试应用程序,它在编辑文本中从用户那里获取 2 个字符串,并将其发送到 php 文件,最后发送到 MySQL 数据库 我有 2 个编辑文本和一个按钮 在我的 Java 文件中,我创建了一个 asycnctask 类 namd sendpost
我想在 asynctask 类中使用 2 edittext 的值,但它说:
gettext 的值必须在 ui 内部使用
Button btn;
EditText name;
EditText email;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
btn =(Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new SendPost().execute();
Intent i = new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
}
class SendPost extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... params) {
String NameHolder = name.getText().toString() ;
String EmailHolder = email.getText().toString() ;
String Address = "http://nardooon.ir/post.php";
HashMap hashmap = new HashMap();
hashmap.put("name", NameHolder);
hashmap.put("email", EmailHolder);
return Utils.sendData(Address,hashmap);
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
Toast.makeText(Main2Activity.this, "Data Submit Successfully", Toast.LENGTH_LONG).show();
}
}
}
我试图通过 args 传递它,但仍然无法正常工作
它说不能在 Sendpost 中应用 (namee & mailee) ...
怎么了?
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String namee = name.getText().toString();
String mailee = email.getText().toString();
new SendPost(namee,mailee).execute();
Intent i = new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
}
});
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
class SendPost extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... args) {
String NameHolder = args[0] ;
String EmailHolder = args[1] ;
String Address = "http://nardooon.ir/post.php";
HashMap hashmap = new HashMap();
hashmap.put("name", NameHolder);
hashmap.put("email", EmailHolder);
return Utils.sendData(Address,hashmap);
}
【问题讨论】:
标签: android-asynctask android-edittext