5

我有一个包含时间选择器的对话框。在我所有其他手机上,一切正常,我单击按钮,出现对话框(包含时间选择器)。比我设定的时间。

在 Nexus 7 版本 android 4.2 上。在横向模式下,当我单击按钮时,会出现对话框并且键盘会自动出现。我还没有点击TimePicker

任何人都知道为什么我在 Nexus7 上遇到这个问题。

编辑:代码如下

private DatePicker mDatePicker;

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
   mDatePicker = (DatePicker) view.findViewById(R.id.date_picker);
   mDatePicker.init(mDate.get(Calendar.YEAR), mDate.get(Calendar.MONTH), mDate.get(Calendar.DAY_OF_MONTH), this);
   mDatePicker.clearFocus();
}
4

6 回答 6

4

使layout包含时间选择器可聚焦。并要求重点关注此layout。然后 DatePicker不会获得焦点,键盘也不会显示。

于 2013-02-25T05:23:57.167 回答
3

我遇到了同样的问题,我在我的应用程序SoftInputMode中的一个上调用 (Keyboard)Activity并且它出现在所有另一个上Activities。所以,我最后不得不在android:windowSoftInputMode="stateAlwaysHidden"我不想让(键盘)弹出的manifest文件中添加。这摆脱了弹出的键盘。这是我的样子:activitiesSoftInputModemanifest Activity

<activity
        android:name=".GMax3Main"
        android:label="@string/app_name" 
        android:windowSoftInputMode="stateAlwaysHidden">
        <intent-filter>
            <action android:name="com.medeasy.GMax3.MAIN" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
于 2013-02-21T19:02:03.347 回答
3

你有没有试过在对话框出现后隐藏你的键盘?像这样的东西:

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(v.getWindowToken(), 0);

于 2013-02-18T11:23:49.153 回答
2

在您的布局中,将此标记添加到不是DatePicker

<SomeView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:doSomethingCool="true">
    <requestFocus/>
</SomeView>

这应该确保DatePicker不会获得焦点,因此不会显示键盘。

于 2013-02-23T00:32:51.840 回答
2

您也可以尝试在 Manifest 中禁用它:

 <activity
  android:name=".activity.SampleActivity"
  android:configChanges="keyboardHidden|orientation"
 />
于 2013-02-15T14:08:15.323 回答
2

将以下行添加到您的activityinmanifest.xml

     android:windowSoftInputMode="stateAlwaysHidden"
于 2013-02-25T09:51:04.483 回答