2017-09-04 3 views
2

In meiner App versuche ich, Daten von den Android-Gerät-Sensoren zu erhalten und dann zu versuchen, sie in einer Datei zu speichern. Ich konnte Daten von Sensoren abrufen und sie erfolgreich im EditText ausgeben, aber ich kann die Daten nicht kontinuierlich aus dem EditText abrufen. While-Schleife ist hier überhaupt nicht sinnvoll. Und Thread würde eine Kopie von String "entry" erstellen, aber ich brauche es draußen, also habe ich versucht, eine Callable zu verwenden, bin mir aber nicht sicher, ob ich es richtig mache. Schlage etwas vor, um das Gleiche zu tun.Wie man fortwährend Werte von einem bearbeiteten Text in android erhält

Hier ist, was ich tun möchte.

btn_start.setOnClickListener(new Button.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Callable callable = new Callable() { 
       @Override 
       public Object call() throws Exception { 
        while(!btn_stop.isPressed()) { 
         entry += acc_x.getText().toString() + "," + 
           acc_y.getText().toString() + "," + 
           acc_z.getText().toString() + "," + 
           gyro_x.getText().toString() + "," + 
           gyro_y.getText().toString() + "," + 
           gyro_z.getText().toString() + "," + 
           user_name.getText().toString() + "\n"; 
        } 
        return entry; 
       } 
      }; 

      ExecutorService executorService = Executors.newFixedThreadPool(2); 
      Future<String> stringFuture = executorService.submit(callable); 
      try { 
       entry = stringFuture.get(); 
      } catch (InterruptedException e) { 
       e.printStackTrace(); 
      } catch (ExecutionException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 

Here ist der vollständige Code, wenn Sie mehr Referenz benötigen.

Antwort

1

Wenn Sie die Daten kontinuierlich aus dem EditText erhalten möchten.

editText.addTextChangedListener(new TextWatcher() { 
    @Override 
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {} 

    @Override 
    public void onTextChanged(CharSequence s, int start, int before, int count) { 
//save it to file here or what ever you want 
    } 

    @Override 
    public void afterTextChanged(Editable s) {} 
}); 
+0

Vielen Dank das ist genau das, was ich brauche. <3 –

Verwandte Themen