关于我最近的应用程序,我有一些报告,该报告涉及与带有物理键盘的手机,EditText和方向更改有关的错误。
我没有带物理键盘的电话,因此我必须尝试以某种方式复制该问题。在Eclipse的AVD管理器下的仿真器创建屏幕中,有一个“键盘支持”选项。这是我在仿真器上复制物理键盘电话的方式吗?
还有其他方法可以调试问题吗?谢谢。
根据要求编辑:用户传达的当前症状是
EditText首选项未保存(我根据他们的输入进行此假设)
当用户打开键盘时,由于活动导致无法正确切换方向。它要求用户将其打开两次。
完整的活动代码。注意:下面的EditText
不是问题EditText
。
public class GreetingOptions extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.layout.greeting_options);
//Set the edit text preference to only accept positive integers
EditTextPreference fontSize = (EditTextPreference) findPreference("fontSize");
EditText myEditText = (EditText) fontSize.getEditText();
myEditText.setKeyListener(DigitsKeyListener.getInstance(false, false));
}
}
最佳答案
当用户滑出物理键盘时,您的应用程序将被销毁并重新创建,与方向改变时的操作相同。我建议尝试使用方向更改来复制问题。您可以使用以下命令在仿真器中完成此操作:
切换到以前的布局方向(例如,纵向,横向)KEYPAD_7,Ctrl-F11
切换到下一个布局方向(例如,纵向,横向)KEYPAD_9,Ctrl-F12
要解决此问题,我怀疑您需要在销毁应用程序时保存Activity
的状态,并在重新创建应用程序时将其恢复。您可能会发现查看应用程序生命周期很有用。
Application fundamentals
Android emulator
关于android - 在Android模拟器上复制物理键盘,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5020177/