Android之EditText的焦点设置和光标的显示与隐藏

1、焦点的设置

(1)java代码

EditText mEditText = (EditText) findViewById(R.id.edittext);
mEditText.setFocusable(true);//获得焦点
mEditText.setFocusableInTouchMode(true);//获得焦点

关于focusable和focusableInTouchMode的区别,前者是非触屏手机(键盘操作下)运用的,后者是触屏手机运用的。具体可戳链接:android:focusable和android:focusableInTouchMode的区别

(2)XML文件

android:focusable="true"
android:focusableInTouchMode="true"

(3)监听EditText焦点变化

mEditText.setOnFocusChangeListener(new android.view.View.OnFocusChangeListener() {
                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    if (hasFocus) {
                        // 获得焦点
                    } else {
                        // 失去焦点
                    }
                }
            });

2、光标的设置

(1)显示光标(java代码)

mEditText_name.setCursorVisible(true);//显示光标

(2)显示光标(XML文件)

android:cursorVisible="true"

(3)更改光标颜色

android:textCursorDrawable="#FFFFFF"

  如果想设置光标颜色和字体一样 设置@null 即可

(4)设置点击后再显示光标

mEditText_name.setCursorVisible(false);
        mEditText_name.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (MotionEvent.ACTION_DOWN == event.getAction()) {
                    mEditText_name.setCursorVisible(true);// 再次点击显示光标
                }
                return false;
            }
        });

未完待续……

你可能感兴趣的:(Android应用开发)