我有一个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" />
解决此问题的最佳方法是什么?
答案 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
更改了焦点,就会请求焦点,并且您还会显示键盘。