2017-06-08 1 views
-1

Ich versuche, meine erste AsyncTask in App zu machen. Diese Anwendung sollte von 2 Feldnummern herunterladen, dann Multiplikation und Display-Score im 3. Feld.
Es ist einfach, aber ich möchte lernen, wie AsyncTask zu verwenden, und ich möchte diese Methode (für die Multiplikation) in anderen Thread setzen.
Meiner Meinung nach sieht es gut aus, aber AndroidStudio unterstreicht meine Klasse MyTask. Und suggets imperativ die gleiche methode ...:Asynchrone App für Multiplikation kann nicht kompiliert werden

@Override 
protected Void doInBackground(Double... params) { 
    return null; 
} 

Kann ich fragen, wie ich jetzt tun sollte?

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

Wenn es unterstreicht, sagt es Ihnen, was der Fehler ist. Bewegen Sie den Mauszeiger, um es herauszufinden. –

+0

Ich habe weitere Informationen hinzugefügt, Sie können überprüfen, – androidmanifest3

+0

Sie müssen auf uiThread ausführen, um die Ansicht von doInBackground zu aktualisieren –

Antwort

Verwandte Themen