Android 开发学习2

来源:互联网 发布:淘宝男士鞋 编辑:程序博客网 时间:2024/05/22 00:08

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