2017-09-04 119 views
2

在我的應用程序中,我試圖從android設備傳感器獲取數據,然後嘗試將它們存儲在文件中。 我已經能夠從傳感器中檢索數據並在EditText中成功輸出它們,但是我無法從EditText中連續獲取數據。 while循環在這裏顯然不是很有用。線程會創建一個字符串「條目」的副本,但我需要它外面,所以我試圖使用可調用,但我不知道如果我做對了。 建議做些相同的事情。如何連續從編輯文本中獲取值android

這是我想要做的。

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是完整的代碼,如果你需要更多的參考。

回答

1

如果您想從EditText連續獲取數據。

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

謝謝你,這正是我所需要的。 <3 –

相關問題