我有一个带有默认文本的 EditText 。
现在,当用户单击该 EditText 时,默认文本应该更改为某些内容。
我所拥有的是:
- 我单击 EditText,光标出现在默认文本之后,没有任何反应
- 当我再次单击时,onClickListener 就会起作用
我该如何解决这个问题,因为它从第一次就完成了?
这是我的 xml:
<EditText
android:id="@+id/step"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginTop="5dp"
android:hint="@string/hnt_message"
android:text="Default text"
android:maxLength="@integer/max_free_msg_length"
android:maxLines="2"
/>
这是我的片段代码:
private EditText editMessage;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mContentView = inflater.inflate(R.layout.fragment_step, container, false);
ButterKnife.inject(this, mContentView);
editMessage = (EditText) mContentView.findViewById(step);
editMessage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
clearEditMessageText();
}
});
}
我知道我可以使用黄油刀来操作这个按钮,但我这样做了,但没有用。
将 EditText 上的 focusable 设置为 false。第一次单击获得 EditText 焦点。
<EditText
android:id="@+id/step"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginTop="5dp"
android:hint="@string/hnt_message"
android:text="Default text"
android:maxLength="@integer/max_free_msg_length"
android:maxLines="2"
android:focusable="false"
/>
更新:
好的,在你的情况下你可以这样做onFocusChangeListener
代替onClickListener
.
edittext.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean b) {
if (b) {
//do something
}
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)