关于我最近的应用程序,我有一些报告,该报告涉及与带有物理键盘的手机,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/

10-11 22:52
查看更多