2017-06-08 3 views
-1

私はアプリケーションで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

私はさらに情報を追加しました。 – androidmanifest3

+0

を確認することができます。あなたはuiThreadで実行して、doInBackgroundからビューを更新する必要があります –

答えて

0

は、だから、 保護されたボイドdoInBackground(ダブル...のparams)で、あなたのコード内で を 保護されたボイドdoInBackground(ダブル×1、ダブル×2) を置き換える必要がありますのparams [0]のparamsのようなパラメータにアクセスすることができます[1]など

例を参照してください。ここに How can you pass multiple primitive parameters to AsyncTask?

関連する問題