点击按钮时保持EditText焦点

时间:2017-02-23 19:13:34

标签: android android-edittext android-togglebutton

我有一个EditText,下方有三个切换按钮。

我想将焦点放在EditText上,当我点击三个切换中的任意一个时,让键盘保持可见。即,当焦点位于EditText之外时,我不希望键盘隐藏(我不应该看到键盘隐藏然后重新打开)。

我尝试过以下无效:

toggleButton.setOnFocusChangeListener(new View.OnFocusChangeListener()
    {
        @Override
        public void onFocusChange(View v, boolean hasFocus)
        {
            editText.requestFocus(); 
            // This doesn't fully work. 
            // Focus is on editText but keyboard still hides when I 
            // tap on the toggle button.
        }
    });

EditText和ToggleButtons位于片段中,父活动在AndroidManifest中具有此配置。

<activity
        android:name=".activities.MyActivity"
        android:label="@string/m_activity"
        android:theme="@style/AppTheme.NoActionBar"
        android:windowSoftInputMode="stateHidden|adjustResize" />

解决此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

我认为您应该使用yourEditText

OnFocusChangeListener执行此操作
yourEditText.setOnFocusChangeListener(new View.OnFocusChangeListener()
    {
        @Override
        public void onFocusChange(View v, boolean hasFocus)
        {
            yourEditText.requestFocus();
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT);
        }
    });

这意味着,只要您为yourEditText更改了焦点,就会请求焦点,并且您还会显示键盘。