lui*_*fzs 2 android soft-keyboard android-edittext
发生的情况是这样的:活动 A 和 B 有一个EditText
并且它们都有IME_SEARCH
。只能通过 SAMSUNG 平板电脑上的软键盘进行输入。在 Activity AI 上可以毫无问题地使用EditText
。问题是,在 Activity BI 上,在我点击“空格”后或每当我使用建议中的单词时,无法使用退格键删除文本。它的表现就像那里不再有文字了。如果我输入新字符,我可以将它们删除到空格。
要点:
EditTexts
包含相同的视图层次结构IME_SEARCH
(通过setOnEditorActionListener
)是相同的TextWatcher
也相同Run Code Online (Sandbox Code Playgroud)android:configChanges="keyboardHidden|keyboard|orientation" android:windowSoftInputMode="stateAlwaysHidden|adjustUnspecified"
beforeTextChanged
我在两者的方法上设置了断点TextWatcher
。我插入了一个“空格”并按了“退格键”。在活动 A上Edittext
,该方法被触发,但在活动 B 上,该方法没有被触发。我看不出发生这种情况的原因,因为两者的属性Edittext
配置相同。我也尝试删除该IME
选项,但行为保持不变。
有谁知道会发生什么?
编辑1:
searchTxt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (s.length() == 0) {
btnClear.setVisibility(View.GONE);
} else{
btnClear.setVisibility(View.VISIBLE);
}
}
});
searchTxt.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
buildGrid();
return true;
}
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
编辑2: 布局层次结构如下。
<LinearLayout
... >
<include layout="@layout/title_bar" />
<RelativeLayout
...>
<EditText
...>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4185 次 |
最近记录: |