gpt4 book ai didi

android - setFocusable 按钮点击

转载 作者:行者123 更新时间:2023-11-29 18:06:39 27 4
gpt4 key购买 nike

我有一个小型计时器应用程序和名为 etHetMetS 的 EditText 小部件,它们允许输入并显示时间。单击开始按钮并启动计时器时,我通过执行以下操作来禁止交互:

btnS.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (calculateMS() != 0) {
OnTimerStartButtonClicked();
initiateTimer();
DisableEditTexts();
...

方法:

public void DisableEditTexts() {
etH.setFocusable(false);
etM.setFocusable(false);
etS.setFocusable(false);
}

通过按下重置按钮,我想通过调用执行相反操作(将 focusable 设置为 true)的方法重新启用交互:

btnR.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
OnTimerResetButtonClicked();
clearValues();
EnableEditTexts();
...

问题:编辑文本不会通过单击重置按钮变得可聚焦。我在最后一个方法中所做的就是

etH.setFocusable(true);
etM.setFocusable(true);
etS.setFocusable(true);

我做错了什么?

最佳答案

尝试调用 EditText#setFocusableInTouchMode()相反:

etH.setFocusableInTouchMode(true);
// etc.

当您调用 setFocusable(false) 时,会在后台为您调用 setFocusableInTouchMode(false)。但是,当您调用 setFocusable(true) 时,幕后不会发生任何其他事情,setFocusableInTouchMode() 将变为 false

当您调用 setFocusableInTouchMode(true) 时,会发生类似的事情,setFocusable(true) 会为您调用。和之前的setFocusableInTouchMode(false)一样,不调用setFocuable(false)

source code 处登顶看到这个怪癖。

关于android - setFocusable 按钮点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071651/

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