我有一个alertdialog与editext.对于这个Edittext我使键盘出现,当用户按ok或取消隐藏键盘时,我想要.奇怪的问题是当用户选择OK时,键盘是隐藏的,但是当选择取消时,键盘不会隐藏我在两种情况下使用相同的代码.
这是我的代码:
final AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.setTitle(data); final EditText input = new EditText(this); InputFilter[] FilterArray = new InputFilter[1]; FilterArray[0] = new InputFilter.LengthFilter(25); input.setFilters(FilterArray); input.postDelayed(new Runnable() { @Override public void run() { InputMethodManager keyboard = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); keyboard.showSoftInput(input,0); } },200); alert.setView(input); alert.setPositiveButton(ok,new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int whichButton) { text = input.getText().toString().trim(); Canvas c = new Canvas(bitmapResult); drawTextImage(bitmapResult); saveimage(); InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(input.getWindowToken(),0); } }); alert.setNegativeButton(cancel,new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int whichButton) { dialog.cancel(); saveimage(); InputMethodManager im = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); im.hideSoftInputFromWindow(input.getWindowToken(),0); } }); alert.show();
我的秘密在哪里?有人可以帮我吗
解决方法
我找到了解决方案:
alert.setNegativeButton(cancel,new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int whichButton) { saveimage(); InputMethodManager im = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); im.hideSoftInputFromWindow(input.getWindowToken(),0); dialog.cancel(); } });
我隐藏键盘后我应该把dialog.cancel().