有没有办法让addTextChangedListner在启动下一个intent之前等待指定的时间。 我的问题是从输入读取时,它只读取第一个字符,然后立即启动。如果它可能像“.wait(100);这是读取所有输入的时间。
非常感谢
输入来自扫描设备,我宁愿不使用按钮来说明何时启动速度。
final EditText name = (EditText)findViewById(R.id.editText1);
name.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
String results = name.getText().toString();
Intent one= new Intent("com.test.testing");
one.putExtra("key", results);
startActivityForResult(one, 1);
答案 0 :(得分:0)
抱歉我的英语不好。
我猜TextChangedListener在一个单独的线程中执行它所调用的线程。所以调用类似Thread.sleep(100);
之类的东西可以完成这项工作吗?
答案 1 :(得分:0)
为什么不使用像这样的按钮?这种技术对用户来说似乎不太透明,可能会非常令人不安。我不建议那样做......
无论如何,你可以使用时间戳。
// somewhere in your class
private long lastAction = 0;
private static final long WAIT_UNTIL_ACTION = 100;
// your listener
name.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
if (lastAction == 0) {
// initialize it
lastAction = System.currentTimeMillis();
} else if (System.currentTimeMillis() - lastAction > WAIT_UNTIL_ACTION) {
lastAction = System.currentTimeMillis();
// perform it here
}
}
}
答案 2 :(得分:0)
我使用了更简单的东西,输入在末尾有一个自动回车,所以只是使用onKeyListner来寻找它。谢谢你的帮助!