Java 如何启用触控编辑文本
我有一个已禁用的editText,我想在触摸它时启用它 以下是我所做的,但不起作用:Java 如何启用触控编辑文本,java,android,android-edittext,Java,Android,Android Edittext,我有一个已禁用的editText,我想在触摸它时启用它 以下是我所做的,但不起作用: if(textmail.isEnabled() == false){ textmail.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { textm
if(textmail.isEnabled() == false){
textmail.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
textmail.setEnabled(true);
return true;
}
});
}
我仔细阅读了您的用例您想禁用TextView并想在Touch()上禁用它(如果我错了,请纠正我) 这里有一个解决方案,而不是使用
setEnabled()
,就好像您在编写逻辑的(视图/活动/片段/类)中声明一个全局变量(布尔值)时,不会调用onTouch()
//this as global variable
private boolean isTextViewDisabled=false;
//place this code on onCreate()
textmail.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN ){
if(isTextViewDisabled){
return false;
}
}
return true;
}
});
根据您的用例,在需要时将isTextViewDisabled设置为true
和false
但是这里的混淆是启用和禁用的条件应该是其他的,而不是触摸事件
,因为根据您的用例代码应该如下所示:
//place this code on onCreate()
textmail.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN ){
if(isTextViewDisabled){
isTextViewDisabled=false;
}
}
return true;
}
});
除非您解释为什么要禁用textView,否则上面的代码没有多大意义。试试这个,我希望这有帮助
textmail.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(textmail.isEnabled() == false){
textmail.setEnabled(true);
}
return true;
}
});
如果禁用编辑文本,它将不会触发事件,即onTouch/onClick。为了解决这个问题,您需要避免使用disable,而是使用clickable<代码>文本邮件。可设置可点击(错误)代码>在onCreate方法中 要使组件看起来像被禁用了一样,还可以使用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;
}
});
您面临的问题是什么?您返回的是false,这就是为什么它没有被启用的原因。返回true@Anmol editText未启用,仅当editText已启用时才起作用enabled@AnushaMathur即使使用true nothing Changes,如果视图被禁用,它也不会触发OnTouchListener(),因为它已被禁用。check@Amalnow@Amal很高兴我能帮忙:)