私はアプリケーションで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();
}
}
下線が引かれている場合は、エラーの内容を示します。見つけ出すにはマウスカーソルをホバーします。 –
私はさらに情報を追加しました。 – androidmanifest3
を確認することができます。あなたはuiThreadで実行して、doInBackgroundからビューを更新する必要があります –