编辑文本键侦听器
Posted
技术标签:
【中文标题】编辑文本键侦听器【英文标题】:Edit Text key listener 【发布时间】:2012-06-11 13:56:33 【问题描述】:我的布局中有一个edittext
和一个按钮,在我的代码中我将edittext
的keyListener
设置为null
editText.setKeyListener(null);
这样我就无法输入我的edittext
。现在点击我的按钮,我应该可以输入我的ediitext
。我怎样才能做到这一点。这是一个简单的问题,但我找不到任何解决方案。任何帮助将不胜感激。
【问题讨论】:
【参考方案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_
android:layout_
android:editable="false" <<<<<<<
</EditText>
【讨论】:
很抱歉,如果我们这样做了,我们仍然可以在禁用模式下输入编辑文本。我不能接受这个答案,尽管它可能会让用户感觉他可能无法输入编辑文本 我想做的只是通过代码。因为当我再次点击那个按钮时。我想像以前一样制作edittext的属性(无法输入)所以我不能去xml......但我会检查java代码中是否有任何像可编辑的属性......意味着如果你找到答案请通过发布帮助我...谢谢以上是关于编辑文本键侦听器的主要内容,如果未能解决你的问题,请参考以下文章
UIActivityTypePostToFacebook 如何发布图像和文本 xcode ios NSDictionary 文本键