【问题标题】:Replicate physical keyboard on the Android emulator在 Android 模拟器上复制物理键盘
【发布时间】:2012-03-06 15:23:27
【问题描述】:

我最近收到了几份关于我最近的应用程序的错误报告,这些错误与带有物理键盘、EditText 和方向更改的手机有关。

我没有带物理键盘的手机,所以我必须尝试以某种方式重现这个问题。在 Eclipse 的 AVD 管理器下的模拟器创建屏幕中,有一个“键盘支持”选项。这是我在模拟器上复制物理键盘电话的方式吗?

还有其他方法可以调试我的问题吗?谢谢。

根据要求编辑:用户传达的当前症状是

  1. EditText Preference 未保存(我根据他们的输入做出此假设)
  2. 当用户打开键盘时,活动没有正确切换方向。它需要用户打开它两次。

完整的活动代码。注意:下面的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));

    }
}

【问题讨论】:

    标签: android keyboard emulation


    【解决方案1】:

    当用户滑出物理键盘时,您的应用将被销毁并重新创建,这与方向更改时发生的情况相同。我建议尝试使用方向更改来复制问题。您可以在模拟器中使用:

    切换到以前的布局方向(例如,纵向、横向)KEYPAD_7、Ctrl-F11
    切换到下一个布局方向(例如,纵向、横向)KEYPAD_9、Ctrl-F12

    要解决此问题,我怀疑您需要在应用被销毁时保存 Activity 的状态,并在重新创建时恢复它。您可能会发现查看应用程序生命周期很有用。

    【讨论】:

    • 方向更改在活动中正常工作,否则。事实上,Activity 是全部 5 行代码,其中没有一个可以控制我遇到问题的 EditText。它是一个通过 XML 处理的PreferenceActivity。一定有其他原因导致它......
    • @user432209 那么也许您可以编辑您的原始帖子以描述问题的症状是什么? EditText 会发生什么?
    • 忘了添加,我会在模拟器中尝试,尽管它是我发布前测试的一部分。我不知道所有症状,因为我无法复制它。
    • 发布更新了完整的活动代码和症状(据我所知)。
    • 嘿,看那个!我能够使用模拟器复制这个错误,耶!我相当震惊,它在非键盘手机上的效果不一样(因为我已经在 3 种不同类型的手机上测试过,现在试图复制它)谢谢。
    【解决方案2】:

    这并不是一个真正的答案,但我对模拟器的体验是它对任何“物理”输入的支持仅限于无。甚至试图模拟插入耳机也超出了它的能力范围。

    我建议你尝试乞求、借用或偷一部带键盘的真手机,然后在上面安装应用程序。

    对不起,我不能提供更多帮助:(

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-24
      • 2021-03-22
      • 1970-01-01
      • 2020-02-13
      • 1970-01-01
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多