【问题标题】:Edit Text key listener编辑文本键侦听器
【发布时间】:2012-06-11 13:56:33
【问题描述】:

我的布局中有一个edittext 和一个按钮,在我的代码中我将edittextkeyListener 设置为null

    editText.setKeyListener(null);

这样我就无法输入我的edittext。现在点击我的按钮,我应该可以输入我的ediitext。我怎样才能做到这一点。这是一个简单的问题,但我找不到任何解决方案。任何帮助将不胜感激。

【问题讨论】:

    标签: android android-edittext keylistener


    【解决方案1】:

    我现在可能迟到了,但我就是这样做的:

    public class MyActivity extends Activity
    {
        private KeyListener listener;
        private EditText editText;
    
        public void onCreate(...)
        {
            editText = ... // Get EditText from somewhere
            listener = editText.getKeyListener(); // Save the default KeyListener!!!
            editText.setKeyListener(null); // Disable input
        }
    
        // When you click your button, restore the default KeyListener
        public void buttonClickHandler(...)
        {
            editText.setKeyListener(listener);
        }
    }
    

    基本上,在调用setKeyListener(null) 之前,您首先要保存EditText 的默认KeyListener。然后,当您单击按钮时,再次调用 setKeyListener,传递您之前保存的默认侦听器。

    【讨论】:

    • 正是我想要的……没试过,但听起来很有希望。
    【解决方案2】:

    你可以用这个:

    // When you click your button, restore the default KeyListener
    public void buttonClickHandler(...)
    {
        editText.setKeyListener(new EditText(getApplicationContext()).getKeyListener());
    }
    

    【讨论】:

    • 我觉得rainai的回答比较正确。这将保留edittext的原始keylistener
    • 我托盘rainai的方法,但它对我不起作用,所以我选择了这个方法,因为它有效。 :)
    • rainai 的方法对我也不起作用。这个虽然有效。
    • 我试过这个方法,但是当我点击输入时没有出现键盘。有人遇到过这个问题吗?
    【解决方案3】:

    它在 android 中的错误参见这里Bugs

    但是在xml文件中你可以做到。使用android:editable="false"

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:editable="false" <<<<<<<
    </EditText>
    

    【讨论】:

    • 很抱歉,如果我们这样做了,我们仍然可以在禁用模式下输入编辑文本。我不能接受这个答案,尽管它可能会让用户感觉他可能无法输入编辑文本
    • 我想做的只是通过代码。因为当我再次点击那个按钮时。我想像以前一样制作edittext的属性(无法输入)所以我不能去xml......但我会检查java代码中是否有任何像可编辑的属性......意味着如果你找到答案请通过发布帮助我...谢谢
    猜你喜欢
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多