我有一个包含时间选择器的对话框。 在我所有的其他手机上,一切正常我单击按钮,出现对话框(包含时间选择器)。比我设定的时间。
在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();
}
答案 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"