【发布时间】:2014-05-14 10:05:35
【问题描述】:
我的 editText 有问题。我想在这个editText中放置一个默认文本,当你点击文本消失时,你可以写一个数字。布局代码一切顺利:
<EditText
android:id="@+id/yearEdit"
android:layout_width="145dp"
android:layout_height="45dp"
android:layout_marginBottom="40dp"
android:gravity="center"
android:ems="10"
android:inputType="number|numberDecimal"
android:text="@string/chooseDate"
android:textSize="13sp"
/>
在活动中,编辑文本具有 textWatcher 和 onClickListener :
private class ChooseYear implements TextWatcher, OnClickListener {
@Override
public void afterTextChanged(Editable arg0) {
if (!yearEdit.getText().toString().equals("")) {
yearChoose = Integer.parseInt(yearEdit.getText()
.toString());
}
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) {
}
@Override
public void onTextChanged(CharSequence arg0, int arg1,
int arg2, int arg3) {
}
@Override
public void onClick(View arg0) {
if (yearChoose == -1) {
yearEdit.setText("");
}
}
}
但我的问题是:当我将它用作 onClickListener 时,当我单击其“完成”按钮时,android 键盘不再关闭。有人知道为什么吗?是否存在修复它的正确方法?
非常感谢您的帮助,
艾略特
【问题讨论】:
-
如果您想在
EditText中显示一些默认文本,在点击时应该消失,为什么不使用android:hint="@string/chooseDate"而不是当前android:text="@string/chooseDate"?我不太明白其余的部分。设置OnClickListener的唯一目的是隐藏键盘吗? -
我会尝试,android:hint="@string/chooseDate" 通过删除 OnClickListener 来解决我的问题。但我也对这个事实感兴趣,而不是添加一个 onClickListener 停用键盘的完成按钮,所以如果有人知道这一点,我很感兴趣!
-
不确定是否相关,但您可能希望在测试提示属性时注释掉
onClickListener。 -
hint 在我的情况下不起作用,因为我只有一个 editText 并且默认选择它,因此文本永远不会消失,提示可能会监听 onFocusedChanged。没有?
-
您是否尝试过禁用 OnClickListener?如果这是唯一的
EditText,并且当您的Activity启动时,如果它正在获得焦点并因此不显示提示,您还可以尝试将此属性添加到 manifest.xml 中的 Activity:android:windowSoftInputMode="stateHidden"。这不会自动打开键盘并显示提示。
标签: android android-layout onclicklistener