为什么我无法删除处理程序中运行的 EditText 上的文本?
温馨提示:
本文最后更新于 2024年04月12日,已超过 48 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
Here's my code I have within an Activity
(API Level 30):
EditText loggerText;
final Handler handlerLogger = new Handler(Looper.getMainLooper());
final int delayHandlerLogger = 200;
public void syncSongs() {
handlerLogger.removeCallbacksAndMessages(null);
loggerText.setText("");
loggerText.post(this::processLogger);
}
public void processLogger() {
handlerLogger.postDelayed(new Runnable() {
public void run() {
if (!isQueueEmpty()) {
String loggerLine = getQueueLastString;
String textCheck = loggerText.getText().toString();
loggerText.append(loggerLine + "\n");
}
handlerLogger.postDelayed(this, delayHandlerLogger);
}
}, delayHandlerLogger);
}
When I call syncSongs()
from public boolean onOptionsItemSelected(@NonNull MenuItem item)
method (which should erase text with setText("")
before post), first time it enters on if (!isQueueEmpty()) {
statement, textCheck
(i.e. the text from loggerText
, which should be empty, due to setText("")) is not "".
Why? Am I missing somethings? What's not correct to deal with it on this async process?
It seems loggerText
Is a duplicate object within Runnable, because when I switch Activity and check it onResume/onStart, text is empty, while within Runnable remains the appended text on previous iteration (can't get this).
正文到此结束
- 本文标签: 家庭宠物
- 本文链接: https://www.coder6.net/article/2305
- 版权声明: 本文由蚂蚁原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
热门推荐
-
浏览(193) 评论(0)