键盘会自动出现在Nexus7版本4.2上

时间:2013-02-15 13:52:38

标签: android dialog timepicker

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

在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();
}

6 个答案:

答案 0 :(得分:4)

使包含时间选择器的layout可调焦。并请求关注此layout。然后DatePicker将无法获得焦点,键盘将不会显示。

答案 1 :(得分:3)

在对话框出现后,您是否曾尝试在按钮上单击隐藏键盘?像这样:

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

答案 2 :(得分:3)

我遇到了同样的问题,我在我的应用中的一个SoftInputMode上呼叫Activity(键盘),并且它出现在所有其他Activities上。所以,我最后不得不在我android:windowSoftInputMode="stateAlwaysHidden" manifest上的activities文件中添加SoftInputMode,我不想弹出manifest(键盘)。这摆脱了键盘弹出。以下是我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> 的样子:

{{1}}

答案 3 :(得分:2)

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

 <activity
  android:name=".activity.SampleActivity"
  android:configChanges="keyboardHidden|orientation"
 />

答案 4 :(得分:2)

在您的布局中,将此标记添加到 DatePicker的视图中:

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

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

答案 5 :(得分:2)

将以下行添加到activity

中的manifest.xml
     android:windowSoftInputMode="stateAlwaysHidden"