我有一个editText被禁用,我想在触摸它时启用它。

这是我所做的,但是不起作用:

if(textmail.isEnabled() == false){
        textmail.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                textmail.setEnabled(true);
                return true;
            }


        });
    }

最佳答案

如果禁用Edittext,它将不会触发事件,即onTouch / onClick。为了解决此问题,您需要避免使用禁用,而应使用clickable。您的onCreate方法中的textmail.setClickable(false);

为了使组件看起来像已被禁用,您还可以使用Alpha值来减少组件的不透明度,以使其看起来逐渐消失。

textmail.setAlpha(0.5f);


现在它应该响应您的听众...

textmail.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        textmail.setClickable(true);
        textmail.setAlpha(1f);
        return false;
    }
});

关于java - 如何在触摸时启用editText,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53985776/

10-09 01:26