我尝试在App中制作我的第一个AsyncTask
。此应用程序应从2个字段编号下载,然后在第3个字段中进行乘法和显示分数
这很容易,但我想学习如何使用AsyncTask,我想把这个metod(用于乘法)放在其他线程中。
在我看来它看起来很好,但AndroidStudio强调我的班级MyTask
。并且建议采用相同的方法...:
@Override
protected Void doInBackground(Double... params) {
return null;
}
我可以要求提示,我现在应该怎么做?
public class MainActivity extends AppCompatActivity {
private Button button;
private EditText editText,editText2,editText3;
private String a,b,c;
private Double x1,x2,x3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
editText = (EditText) findViewById(R.id.editText);
editText2 = (EditText) findViewById(R.id.editText2);
editText3 = (EditText) findViewById(R.id.editText3);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
a = editText.getText().toString();
b = editText2.getText().toString();
x1 = Double.parseDouble(a);
x2 = Double.parseDouble(b);
calc();
}
});
}
private class MyTask extends AsyncTask<Double, Void, Void>{
@Override
protected Void doInBackground(Double x1, Double x2) {
x3 = x1 * x2;
c = String.valueOf(x3);
editText3.setText(c);
return null;
}
}
private void calc() {
new MyTask().execute();
}
}
答案 0 :(得分:0)
所以你需要更换 protected void void doInBackground(Double x1,Double x2) 在你的代码中 protected void void doInBackground(Double ... params) 你可以访问params [0] params [1]等参数
查看示例,例如这里 How can you pass multiple primitive parameters to AsyncTask?