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>
方法:设置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); }
原文地址:http://blog.csdn.net/myatlantis/article/details/40858119