我的应用有一个包含三个片段的活动。在第一个(Frg1)和第三个(Frg3)片段中有listview。第二个片段(Frg2)有一个editText。 当我启动Frg2时显示软键盘。没错。 我尝试Frg2.onPause这段代码
@Override
public void onPause() {
super.onPause();
editText.post(new Runnable() {
@Override
public void run() {
editText.clearFocus();
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
});
}
当我在Frg3软键盘隐藏后启动Frg1或Frg2但在渲染后再显示Frg1 / Frg2键盘。
代码示例(在Frg3中):
@Override
public void onResume() {
super.onResume();
editText.requestFocus();
}
和
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
editText.post(new Runnable() {
@Override
public void run() {
imm.showSoftInput(editText, 0);
}
});
}
});
在Manifest.xml中
<activity android:name=".ContentActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize" >
可能是什么问题?
更新
我找到了解决方案
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
editText.post(new Runnable() {
@Override
public void run() {
imm.showSoftInput(editText, 0);
}
});
}
});
@Override
public void onResume() {
super.onResume();
editText.requestFocus();
imm.showSoftInput(editText, 0);
}
@Override
public void onPause() {
super.onPause();
View v = getActivity().getCurrentFocus();
if(v != null) {
v.clearFocus();
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
editText.clearFocus();
}
全部谢谢!
答案 0 :(得分:1)
我找到了解决方案
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
editText.post(new Runnable() {
@Override
public void run() {
imm.showSoftInput(editText, 0);
}
});
}
});
@Override
public void onResume() {
super.onResume();
editText.requestFocus();
imm.showSoftInput(editText, 0);
}
@Override
public void onPause() {
super.onPause();
View v = getActivity().getCurrentFocus();
if(v != null) {
v.clearFocus();
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
editText.clearFocus();
}
全部谢谢!