防止软键盘出现在包含edittext的弹出窗口中?

时间:2014-11-11 10:07:19

标签: java android

我有一个弹出窗口,其中包含编辑文本。我可以阻止软键盘显示弹出窗口,因为我的弹出窗口一显示就会向上移动。

getWindow()setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

我在按钮点击时显示弹出窗口的活动中使用了这一行。请帮忙......!

android:windowSoftInputMode="stateHidden" 

我也在清单中使用了这一行。但没有用。

public class MainActivity extends Activity implements OnClickListener {
       AlertDialog dialog;
       View checkBoxView ;


       @Override
       protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_main);



findViewById(R.id.des_button).setOnClickListener(this);
//checkBoxView = View.inflate(this, R.layout.popup_description, null);
}
       @Override
       public void onClick(View v) {

           final Dialog dialog = new Dialog(this);
           dialog.getWindow().getAttributes().windowAnimations = 


                   R.style.dialog_animation;

//          dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
            dialog.setContentView(R.layout.popup_description);
            getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
            Button btn_Start = (Button) dialog.findViewById(R.id.ok);
            btn_Start.setOnClickListener(new OnClickListener() {  
                @Override  
                public void onClick(View view) {  

                    dialog.dismiss();   
                }  
            });

            Button cancel = (Button) dialog.findViewById(R.id.cancel);
            cancel.setOnClickListener(new OnClickListener() {  
                @Override  
                public void onClick(View view) { 
                    dialog.dismiss(); 
                }  
            });

            dialog.show();
       }
       @Override
       public void onDestroy() {
              if (dialog!=null) {
                     if (dialog.isShowing()) {
dialog.dismiss();


}

1 个答案:

答案 0 :(得分:0)

尝试

    android:windowSoftInputMode="stateAlwaysHidden"

在您的活动清单中。打开该对话框弹出窗口后,您还可以执行以下操作。

    public static void hideKeyboard()
    {
    InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    inputMethodManager.hideSoftInputFromWindow(editTextInPopup.getWindowToken(), 0);
    }