java—如何在android中连续地从编辑文本中获取值

kkih6yb8  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(237)

在我的应用程序中,我尝试从android设备传感器获取数据,然后尝试将它们存储在一个文件中。我已经能够从传感器中检索数据并在edittext中成功输出它们,但我无法从edittext中连续获取数据。然而,循环在这里一点用都没有。线程会创建一个字符串“entry”的副本,但我需要它在外部,所以我尝试使用一个callable,但不确定我是否做对了。建议做同样的事情。
这是我想做的。

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();
            }
        }
    });

这里是完整的代码,如果你需要更多的参考。

sbdsn5lh

sbdsn5lh1#

如果您想从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) {}
});

相关问题