您的位置:首页 > 其它

点击按钮隐藏软键盘

2015-10-30 10:25 141 查看
在activity中点击按钮隐藏软键盘

public class FindActivity extends BaseActivity implements OnClickListener{
private InputMethodManager imm;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_find);
imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
}

// 点击事件
public void onClick(View v) {
switch (v.getId()) {
case R.id.find_right_cancle:
hide(this);  // 隐藏软键盘
if ("搜索".equals(mTextView.getText())) {
// TODO 得到输入的内容提交到服务端
String text = mEditText.getText().toString();
//              loadData(true, 1, 10,text);
mLinearLayout.setVisibility(View.GONE);  // 隐藏热门搜索
// 弹出进度动画   搜索成功显示列表,失败显示一句话
mTextViewError.setVisibility(View.VISIBLE);  // 显示搜索失败的一句话
}else{
finish();
}
break;
case R.id.find_back_img:
finish();
break;

default:
break;
}
}

public void hide(Context context) {
View view = getWindow().peekDecorView();
if (view != null && view.getWindowToken() != null) {
imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}


在fragment中点击空白出隐藏软键盘

//事件分发,在主控制器MainActivity中写
public boolean dispatchTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
downX=(int) ev.getX();
downY=(int) ev.getY();
break;
case MotionEvent.ACTION_MOVE:
int moveX=(int) ev.getX();
int moveY=(int) ev.getY();

if (Math.abs(moveX-downX)>=0 || Math.abs(moveY-downY)>=0) {
hide(MainActivity.this);
}
break;
}
return super.dispatchTouchEvent(ev);
}
/**
*  调用该方法隐藏键盘
* @param context
*/
public static void hide(Context context) {
InputMethodManager imm  = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
View view = ((MainActivity) context).getWindow().peekDecorView();
if (view != null && view.getWindowToken() != null) {
imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: