gpt4 book ai didi

java - Android:如果 EditText 在 x 秒内未更改,则调用函数

转载 作者:搜寻专家 更新时间:2023-11-01 07:50:46 24 4
gpt4 key购买 nike

我正在开发这个应用程序,只要 EditText 中的文本发生变化,它就会向服务器发送请求。它可以正常工作。

问题是,如果每次edittext改变我都发送一个请求,最后会是很多请求。而且我不想使用“发送”按钮。

我想要这样的东西:

如果用户输入编辑文本,一些计时器会继续。如果计时器达到 x 秒,它就会执行请求。但如果用户再次键入,计时器会重置。

这样,只有在用户停止输入时才会发送请求。

您可能知道更好的方法,我很乐意听到。

提前致谢:D

最佳答案

一种方法是使用 myEditText.addTextChangedListener(...) 并使用 TextWatcher 来了解文本何时更改。

然后在 onTextChanged() 方法中,您可以使用 Handler 发布一个延迟的可运行对象,如果他们不再输入任何内容,则将当前文本发送到您的服务器。

这是大致的样子:

private Handler handler = new Handler();
private Runnable postToServerRunnable = new Runnable() {
@Override
public void run() {
// TODO: PUT CODE HERE TO HANDLE CURRENT VALUE OF EDIT TEXT AND SEND TO SERVER
}
};

private TextWatcher textWatcher = new TextWatcher() {
@Override
public void afterTextChanged(Editable arg0) {}

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// remove existing callback (timer reset)
handler.removeCallbacks(postToServerRunnable);
// 500 millisecond delay. Change to whatever delay you want.
handler.postDelayed(postToServerRunnable, 500);
}
};

关于java - Android:如果 EditText 在 x 秒内未更改,则调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35445915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com