-
当一个界面使用了多个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;
}
});