关于Editext的使用

  • 当一个界面使用了多个Editext,如何确定当前获取焦点的Editext是哪一个
方法一:
private EditText mEdtInput,mCurrentEdtView;
 
mEdtInput = (EditText) findViewById(R.id.edt_input);
 
mEdtInput.setOnFocusChangeListener(mFocusChangedListener);
 
private OnFocusChangeListener mFocusChangedListener = new OnFocusChangeListener() {
        @Override
        public void onFocusChange(View view, boolean hasFocus) {
            if(hasFocus){
                mCurrentEdtView = (EditText) view;
            }
            //使用view.getId();判断
        }
    };
 
方法二:
View decorView = getWindow().getDecorView();
View focus = decorView.findFocus();
//使用view.getId();判断

  • Editext禁止自动弹出软键盘
方法-:
在Manifest.xml文件中相应的activity下添加一下代码:
android:windowSoftInputMode=”stateHidden”
方法二:
让EditText失去焦点,使用EditText的clearFocus方法
例:EditText edit=(EditText)findViewById(R.id.edit);
edit.clearFocus();
方法三:
强制隐藏Android输入法窗口
例:EditText edit=(EditText)findViewById(R.id.edit);
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edit.getWindowToken(),0);
方法四:
EditText始终不弹出软件键盘
例:EditText edit=(EditText)findViewById(R.id.edit);
edit.setInputType(InputType.TYPE_NULL);
方法五:
在EditText标签的外层Layout中加入focusableInTouchMode属性
例:
<LinearLayout 
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:focusableInTouchMode = “true”>
<EditText>…</EditText>
</LinearLayout >
 
  • Editext禁止自动弹出软键盘且光标不消失
1.在xml布局文件中android:inputType=”none”
2.代码中设置:
mSmsCodeInputEditText.setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                int inType = mSmsCodeInputEditText.getInputType();
                mSmsCodeInputEditText.setInputType(InputType.TYPE_NULL);
                mSmsCodeInputEditText.onTouchEvent(event);
                mSmsCodeInputEditText.setInputType(inType);
                CharSequence text = mSmsCodeInputEditText.getText();
                if (text instanceof Spannable) {
                    Spannable spanText = (Spannable) text;
                    Selection.setSelection(spanText, text.length());
                }
                return true;
            }
        });
 
 

留下评论

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理