我希望能够通过编程告诉Editext只有在我的指令下才能聚焦,而不允许用户点击所需的那一个。这可行吗?
我尝试过:
android:longClickable="false"
android:clickable="false"
但是两种方法都没有起作用。由于某些原因,有人认为以下解决方案可以解决我的问题,但那个人试图使编辑文本不可编辑,而我只是想使编辑文本无法通过单击聚焦。
参考链接:EditText not editable。
我希望能够通过编程告诉Editext只有在我的指令下才能聚焦,而不允许用户点击所需的那一个。这可行吗?
我尝试过:
android:longClickable="false"
android:clickable="false"
但是两种方法都没有起作用。尝试使用
android:focusable="false"
android:focusableInTouchMode="false"
.setEnabled(false) and .setClickable(false)
因此,请使用以下代码:
.setEnabled(false);
.setClickable(false);
我不确定你是否得到了答案,但我必须做同样的事情,尽管这可能不是简洁明了的方法,但我知道它有效:
首先将keyListener设置为null:
myEditText.setKeyListener(null);
接下来,为EditText设置OnTouch监听器以执行您想要的任何操作:
myEditText.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if(motionEvent.getAction() == MotionEvent.ACTION_UP){
//Do whatever action you need to do here.
}
return false;
}
});
从那里开始,您只需将操作插入到OnTouch监听器ACTION_UP操作标记中即可。在我的情况下,我需要弹出一个带有列表视图的对话框供他们选择,然后将相应的文本设置到EditText中。
希望这可以帮助到您。
编程方式
我也遇到了同样的问题,并通过使用以下代码解决:
.setEnabled(false), .setClickable(false) and .setFocuseable(false)
et.setEnabled(false);
et.setClickable(false);
et.setFocuseable(false);
android:focusable="false"
editText.isEnabled = false // makes it`s color grey
editText.setTextColor(Color.parseColor("#DE000000")) //change color if needed
尝试使用这段代码
EditText et = (EditText) findViewById(R.id.your_edit_text);
et.setFocusable(false);
et.setClickable(true);
EditText 的直接父控件应该夺取焦点,例如:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="beforeDescendants"
android:focusable="true"
android:focusableInTouchMode="true">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="enter.." />
</LinearLayout>
android:inputType="none"
android:clickable="false"
android:focusableInTouchMode="true"
在EditText上使用它。我还没有尝试过,但希望它能正常工作。
focusableInTouchMode="false"
。 - Nimitz14
focusable
为 false 然后查看。 - Manoharandroid:focusable
和android:focusableInTouchMode
设置为 false。 - ashkhn