android EditText光标位置,光标样式,EditText限制输入内容,软键盘遮挡的EditText,搜索框,限制输入表情

本文介绍如何在Android中自定义EditText的属性,包括调整光标位置、限定输入内容为字母数字组合、修改光标样式、处理软键盘遮挡问题以及禁用表情输入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

显示在软键盘上

 

android:windowSoftInputMode="adjustPan|stateHidden"

 1、光标位置

homesosoedit.setSelection(homesosoedit.getText().length());//

 

2、指定输入内容

android:digits="0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
mmet.addTextChangedListener(new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

    }

    @Override
    public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
        String editable = mmet.getText().toString();
        String regEx = "[^a-zA-Z0-9]";  //只能输入字母或数字
        Pattern p = Pattern.compile(regEx);
        Matcher m = p.matcher(editable);
        String str = m.replaceAll("").trim();    //删掉不是字母或数字的字符
        if (!editable.equals(str)) {
            mmet.setText(str);  //设置EditText的字符
            mmet.setSelection(str.length()); //因为删除了字符,要重写设置新的光标所在位置
        }
    }

    @Override
    public void afterTextChanged(Editable s) {

    }
});

3、光标样式

 

在drawable下创建editcolor

 

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <size android:width="2dp" />
    <solid android:color="@color/login_black"  />
</shape>

 

引用即可

 

<EditText
    android:id="@+id/homesosoedit"
    android:layout_width="180dp"
    android:layout_height="25dp"
    android:layout_marginLeft="5dp"
    android:background="@null"
    android:hint="请输入你要找的内容"
    android:textColor="@color/login_black"
    android:textColorHint="@color/bababa"
    android:textCursorDrawable="@drawable/editcolor"
android:lineSpacingExtra="5dp"//行距
 

软键盘遮挡的EditText

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);//键盘遮挡输入框

 

<android.support.v7.widget.SearchView
    android:id="@+id/keyWord"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:imeOptions="actionSearch"
    android:inputType="textCapWords"
    android:singleLine="true"
    android:textColor="@android:color/white"
    android:textColorHint="@android:color/white"
    app:queryHint="请输入上车地点"
    app:searchIcon="@null" />

限制输入表情

使用方式

build :

  compile 'com.xw.repo:xedittext:1.0.6@aar'
Layout (父布局加入命名空间):

  xmlns:app="http://schemas.android.com/apk/res-auto"
EditText(所用代码):

 <com.xw.repo.xedittext.XEditText
        android:layout_width="match_parent"
        android:layout_height="161dp"
        android:background="@null"
        android:gravity="top"
        android:hint="请分享相关问题"
        android:paddingLeft="17dp"
        android:textColor="#999999"
        android:textSize="13sp"
        app:x_disableEmoji="true" />
禁止表情:

app:x_disableEmoji="true"
一键清除:

 app:x_disableClear="true"
hint显示位置:

android:gravity="top"
取消Edit原有的下划线背景:

android:background="@null"
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值