转载地址:http://blog.csdn.net/jason_lewis/article/details/40398677
主要方法:利用InputMethodManager中的hideSoftInputFromWindow方法,隐藏软键盘。
代码如下:
package com.example.test;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.LinearLayout;
public class MainActivity extends Activity {
/** 最外层的大布局,用利设置监听事件来关闭软键盘 */
private LinearLayout ll_main;
/** 整个大布局的单击监听 */
private OnClickListener mOnClickListener = new OnClickListener() {
@Override
public void onClick(View v2) {
/* 关闭软键盘 */
View view = MainActivity.this.getWindow().peekDecorView();
if (view != null && view.getWindowToken() != null) {
try {
((InputMethodManager) MainActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(MainActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
} catch (Exception e) {
Log.w("AOS", "==软键盘关闭时出了异常");
}
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/* 最外层布局相关属性设置 */
ll_main = (LinearLayout) findViewById(R.id.ll_main);
ll_main.setOnClickListener(mOnClickListener);
}
}
主布局代码:main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/editText_main_test"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="点击EditText以外的布局,可以隐藏键盘" >
<requestFocus />
</EditText>
</LinearLayout>