很抱歉再次询问此事的帮助,但所有其他帖子都没有帮助.
这是场景:我有一个Acivity('A'),它包含一个带有片段的Layout.此片段在用户输入上交换.其中一个片段里面有一个edittext,我想把重点放在创作上并显示该死的软键盘.所以,在我使用的片段的onCreateView()中:
mEt = (EditText) v.findViewById(R.id.et);
mEt.setImeOptions(EditorInfo.IME_ACTION_DONE);
mEt.requestFocus();
Run Code Online (Sandbox Code Playgroud)
因此,它第一次工作,但如果片段被替换并在以后重新创建,它会获得焦点,但键盘不会出现.
在片段被破坏之前我试图隐藏键盘:
InputMethodManager keyboard = (InputMethodManager)
ctx.getSystemService(Context.INPUT_METHOD_SERVICE);
keyboard.hideSoftInputFromWindow(et.getWindowToken(), 0);
Run Code Online (Sandbox Code Playgroud)
或通过以下方式明确显示键盘:
InputMethodManager keyboard = (InputMethodManager)
ctx.getSystemService(Context.INPUT_METHOD_SERVICE);
keyboard.showSoftInput(et, 0);
Run Code Online (Sandbox Code Playgroud)
但是(正如你可以想象我在这里发布的事实:)),问题仍然存在.
我也绝望地想到了一个活动/片段问题,并且在活动中使用与听众相同的技术,没有运气.
很沮丧,请帮忙:)
让我们说:
class A {
public int fieldA = 0;
}
class B extends A {
public int fieldB = 0;
}
Run Code Online (Sandbox Code Playgroud)
现在,我想从A创建一个B实例:
A a = new A();
B b = (B) new A();
Run Code Online (Sandbox Code Playgroud)
这给出了classCastException.我可以在B中创建一个带有A实例和复制字段的costructor,但它显然是非实际的:
class B extends A {
public int fieldB = 0;
B (A a){
fieldA = a.fieldA;
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助