Android使用EditText小技巧汇总

 更新时间:2021年05月06日 09:22:44   作者:双木L  
这篇文章主要介绍了Android使用EditText的小技巧汇总,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下

1、隐藏android中EditText自带的的下划线

android:background="@null"
或android:background="@/drawable/bg_edittext_norma.xml"

bg_edittext_norma.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <!--商品描述的可编辑框-->
    <solid android:color="#FFFFFF" />
    <corners android:radius="10dip"/>
    <stroke
        android:width="1dip"
        android:color="#BDC7D8" />
</shape>
<EditText
       style="?android:attr/textViewStyle"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:background="@null"
       android:hint="输入用户名"
       android:paddingBottom="5dip"
       android:paddingTop="5dip" />

2、让软键盘出现搜索按钮

  • 核心代码块1:

这俩个一定要设置,要不然软键盘不会出现搜索

                android:imeOptions="actionSearch"
                android:singleLine="true"
  • 核心代码块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 studio下载安装使用SVN的方法

    Android studio下载安装使用SVN的方法

    在AndroidStudio中开发版本控制,除了Git就是SVN,和Eclipse不同,Android Studio没有提供单独的插件,只能和SVN客户端关联使用,这篇文章主要介绍了Android studio使用SVN的方法,需要的朋友可以参考下
    2022-09-09
  • Android数字华容道小游戏开发

    Android数字华容道小游戏开发

    这篇文章主要为大家详细介绍了Android数字华容道小游戏开发的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Android入门之在SharedPreference中使用加密

    Android入门之在SharedPreference中使用加密

    这篇文章主要为大家详细介绍了Android如何使在SharedPreference中使用加密,文中的示例代码讲解详细,对我们学习Android有一定的帮助,需要的可以参考一下
    2022-12-12
  • 自定义视图view之环形进度条

    自定义视图view之环形进度条

    这篇文章主要介绍了自定义视图view之环形进度条,这次介绍了4种不同的效果,直接上代码了,需要的朋友可以参考下
    2023-04-04
  • Android 如何拦截用户频繁操作(点击事件)

    Android 如何拦截用户频繁操作(点击事件)

    本文主要介绍了Android 如何拦截用户频繁操作,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Android ViewPager源码详细分析

    Android ViewPager源码详细分析

    这篇文章主要为大家详细介绍了Android ViewPager源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Android之高德地图定位SDK集成及地图功能实现

    Android之高德地图定位SDK集成及地图功能实现

    本文主要介绍了Android中高德地图定位SDK集成及地图功能的实现。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • Android 实现桌面未读角标

    Android 实现桌面未读角标

    本文主要介绍了Android实现桌面未读角标的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • Flutter实现购物车功能(代码+逻辑)

    Flutter实现购物车功能(代码+逻辑)

    本文主要介绍了Flutter实现购物车功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • Android开发Flutter 桌面应用窗口化实战示例

    Android开发Flutter 桌面应用窗口化实战示例

    这篇文章主要为大家介绍了Android开发Flutter 桌面应用窗口化实战示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09

最新评论