首页 > 代码库 > EditText焦点问题
EditText焦点问题
1、在一个Activity中添加一个EditText后,每次进入这个Activity时输入法都会自动弹出来,很烦,找了些资料,在此记下解决办法:
方法:在EditText的父控件中获得焦点,这样焦点就不会自动跑到EditText上了。
代码:
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:focusable="true" android:focusableInTouchMode="true" android:orientation="vertical" > <EditText android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:background="@null" android:inputType="text" android:padding="3dp" android:singleLine="true" android:textColor="#666666" android:textColorHint="#777777" /> </LinearLayout>
2、希望在EditText获得焦点时才弹出输入法,失去焦点时关闭输入法。
方法:设置EditText的FocusListener。
代码:
mTitleEdit = (EditText)findViewById(R.id.share_title_edit); mTitleEdit.setOnFocusChangeListener(onFocusChangeListener); mContentEdit = (EditText)findViewById(R.id.share_content_edit); mContentEdit.setOnFocusChangeListener(onFocusChangeListener);
private OnFocusChangeListener onFocusChangeListener = new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if(hasFocus) { SystemUtils.showSoftInput(SharePubActivity.this, v); } else { SystemUtils.hideSoftInput(SharePubActivity.this, v); } } };
public static void showSoftInput(Context context, View v) { InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(v, 0); } public static void hideSoftInput(Context context, View v) { InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(v.getWindowToken(), 0); }
EditText焦点问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。