除非按下按钮,Android才会完全禁用键盘

时间:2014-07-28 17:34:00

标签: android android-layout android-edittext android-softkeyboard

我正在设计一个主要用于外接键盘的Android应用程序。我动态设置了一些编辑文本。问题是无论何时设置焦点,弹出软输入键盘。我想知道如何禁用它。但是,如果用户按下按钮,我想显示一个弹出框以及启用键盘。可以这样做吗?您是否可以完全禁用弹出键盘,然后在用户按下按钮打开弹出菜单时启用它?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

使用此:

public class MyActivity extends Activity
{
    private EditText ed;
    private Button b;
    private InputMethodManager imm;
    private boolean hide = true;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_layout);

        ed = (EditText) findViewById(R.id.edit);
        b = (Button) findViewById(R.id.button);

        imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);

        b.setOnClickListener(new OnClickListener() 
        {
            @Override
            public void onClick(View v) 
            {
                if(hide)
                {
                    hide = false;
                    imm.hideSoftInputFromWindow(ed.getWindowToken(), 0);
                }
                else
                {
                    hide = true;
                    imm.showSoftInput(ed, 0);   
                }
            }
        });
    }
}

并在活动代码的清单中:

<activity
            android:windowSoftInputMode="stateAlwaysHidden"