这篇文章主要介绍了Android使用EditText的小技巧汇总,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下
- 核心代码块2:
Activity或者Fragment 要实现TextView.OnEditorActionListener接口
public class DrugCatalogueInquiryFragment extends GeneralSocialFragment implements TextView.OnEditorActionListener {
private ClearEditText etDrugName;
etDrugName = xFindViewById(R.id.et_drug_name);
etDrugName.setOnEditorActionListener(this);
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
doWhichOperation(actionId);
return true;
}
private void doWhichOperation(int actionId) {
switch (actionId) {
case EditorInfo.IME_ACTION_SEARCH:
//隐藏项目中弹框
hideSoftInputMethod();
//项目中个性化操作
getEditTextValue();
pageno = 1;
getMedicineListInfoForApp(name,firstWord,type,level,pageno);
break;
default:
break;
}
}
}
3、多行EditText的时候会出现光标在中间的问题:
关键代码
android:gravity="left"
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minLines="5"
android:background="#ffffff"
android:paddingLeft="5dp"
android:gravity="left" />
像这种。这是什么原因造成的呢?用来EdittText默认是gravity是center.就是从中间对齐。我们把他改成left啊top啊就OK了。
4、修改EditText的光标颜色
在使用EditText的XML 文件中加入一个属性:
android:textCursorDrawable="@null"
//或者
android:textCursorDrawable = "#fff000"
这个属性是用来控制光标颜色的,"@null" 是作用是让光标颜色和text color一样,当然也可以修改成你自己的颜色。
5、通过监听OnFocusChangeListener判断EditText的焦点与否
private void initListener(){
etDrugName.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean b) {
if (b){
TypeUtils.getInstance( getActivity() ).hideKeyboardView();
}
}
});
etDrugNameOfInitial.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean b) {
if (b){
TypeUtils.getInstance( getActivity() ).hideKeyboardView();
}
}
});
}
6、通过属性android:ellipsize来对文本内容的呈现做说明
android:ellipsize="end"
7、通过属性android:digits来规定只能输入的值
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
8、规定只能输入中文
/**
* 通过使用Android源码中的InputFilter接口
*/
InputFilter filter = new InputFilter() {
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
for (int i = start; i < end; i++) {
if (!isChinese(source.charAt(i))) {
return "";
}
}
return null;
}
};
/**
* 判定输入汉字
*
* @param c
* @return
*/
public static boolean isChinese(char c) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
|| ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
return true;
}
return false;
}
到这里就结束啦。
以上就是Android使用EditText小技巧汇总的详细内容,更多关于Android使用EditText的资料请关注编程学习网其它相关文章!
沃梦达教程
本文标题为:Android使用EditText小技巧汇总


猜你喜欢
- Android studio实现动态背景页面 2023-05-23
- 详解flutter engine 那些没被释放的东西 2022-12-04
- 作为iOS开发,这道面试题你能答出来,说明你基础很OK! 2023-09-14
- SurfaceView播放视频发送弹幕并实现滚动歌词 2023-01-02
- Flutter实现底部和顶部导航栏 2022-08-31
- Android实现监听音量的变化 2023-03-30
- 最好用的ios数据恢复软件:PhoneRescue for Mac 2023-09-14
- iOS 对当前webView进行截屏的方法 2023-03-01
- Android MaterialButton使用实例详解(告别shape、selector) 2023-06-16
- Android实现轮询的三种方式 2023-02-17