Android 开发学习2

EditText(输入框)

  1. 设置默认提示文本
    android:hint = //默认提示文本
    android:textColorHint = //默认提示文本的颜色
  2. 获得焦点后全选组件内所有文本内容
    android:selectAllOnFocus = “true”
  3. 限制EditText输入类型
    android:inputType=”phone”
    android:inputType=”number”
    android:inputType=”numberSigned”
    android:inputType=”numberDecimal”
    android:inputType=”phone”//拨号键盘
    android:inputType=”datetime”
    android:inputType=”date”//日期键盘
    android:inputType=”time”//时间键盘
  4. 设置最小行,最多行,单行,多行,自动换行
    设置最小行的行数:android:minLines=”3”
    置EditText最大的行数:android:maxLines=”3”
    android:singleLine=”true” 即可实现单行输入不换行
    android:textScaleX=”1.5” //设置字与字的水平间隔
    android:textScaleY=”1.5” //设置字与字的垂直间隔

android:capitalize =

  • sentences:仅第一个字母大写
  • words:每一个单词首字母大小,用空格区分单词
  • haracters:每一个英文字母都大写

    1. 控制EditText四周的间隔距离与内部文字与边框间的距离
      使用margin相关属性增加组件相对其他控件的距离,比如android:marginTop = “5dp” 使用padding增加组件内文字和组件边框的距离,比如android:paddingTop = “5dp”
    2. 设置EditText获得焦点,同时弹出小键盘
      首先是让EditText获得焦点与清除焦点的
      edit.requestFocus(); //请求获取焦点
      edit.clearFocus(); //清除焦点
      获得焦点后,弹出小键盘,笔者大部分时间就花在这个上:
      低版本的系统直接requestFocus就会自动弹出小键盘了

    3. 带删除按钮的EditText

public class EditTextWithDel extends EditText {

    private final static String TAG = "EditTextWithDel";
    private Drawable imgInable;
    private Drawable imgAble;
    private Context mContext;

    public EditTextWithDel(Context context) {
        super(context);
        mContext = context;
        init();
    }

    public EditTextWithDel(Context context, AttributeSet attrs) {
        super(context, attrs);
        mContext = context;
        init();
    }

    public EditTextWithDel(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        mContext = context;
        init();
    }

    private void init() {
        imgInable = mContext.getResources().getDrawable(R.drawable.delete_gray);
        addTextChangedListener(new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            @Override
            public void afterTextChanged(Editable s) {
                setDrawable();
            }
        });
        setDrawable();
    }

    // 设置删除图片
    private void setDrawable() {
        if (length() < 1)
            setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
        else
            setCompoundDrawablesWithIntrinsicBounds(null, null, imgInable, null);
    }

    // 处理删除事件
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (imgAble != null && event.getAction() == MotionEvent.ACTION_UP) {
            int eventX = (int) event.getRawX();
            int eventY = (int) event.getRawY();
            Log.e(TAG, "eventX = " + eventX + "; eventY = " + eventY);
            Rect rect = new Rect();
            getGlobalVisibleRect(rect);
            rect.left = rect.right - 100;
            if (rect.contains(eventX, eventY))
                setText("");
        }
        return super.onTouchEvent(event);
    }
    @Override
    protected void finalize() throws Throwable {
        super.finalize();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值