如何使Edittext无法点击

问题描述 投票:1回答:7

当我可编程地告诉它并且不允许用户按下他想要的那个时,我想让编辑文本只关注焦点。这可能吗?

我试过了

android:longClickable="false"
android:clickable="false"

但都没有奏效。

出于某种原因,人们认为以下内容解决了我的问题,但是那个人正在尝试使编辑文本不可编辑,我试图使编辑文本无法通过单击来调整

EditText not editable

android android-edittext
7个回答
4
投票

试试吧

    android:focusable="false"
    android:focusableInTouchMode="false"

4
投票

我遇到了同样的问题并使用以下方法解决了它:

.setEnabled(false) and .setClickable(false)

所以用这个代码:

.setEnabled(false);
.setClickable(false);

0
投票

尝试使用此代码

EditText et = (EditText) findViewById(R.id.your_edit_text);
et.setFocusable(false);
et.setClickable(true);

0
投票

在xml文件中尝试使用以下代码 -

    android:clickable="false"
    android:focusableInTouchMode="true"

在EditText上使用它。我没试过,但希望它有效。


0
投票

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>

0
投票

不确定你是否得到了这个答案,但我必须做同样的事情,虽然这可能不简洁,但我知道它有效:

首先将keyListener设置为null:

myEditText.setKeyListener(null);

接下来,将EditTxt的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操作标记即可。在我的例子中,我需要弹出一个带有listview的Dialog,供他们选择,然后将相应的文本设置为EditText。

希望有所帮助。


0
投票

编程

我遇到了同样的问题并使用以下方法解决了它:

.setEnabled(false), .setClickable(false) and .setFocuseable(false)

所以用这个代码:

et.setEnabled(false);
et.setClickable(false);
et.setFocuseable(false);

使用XML

android:focusable="false"
© www.soinside.com 2019 - 2024. All rights reserved.