android 的timepicker不能响应键盘输入的原因

来源:互联网 发布:2016软件开发人才需求 编辑:程序博客网 时间:2024/05/21 01:24
在我的工作中,今天做了一个布局发现无法响应这是布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:focusable="true"    android:focusableInTouchMode="true"    android:orientation="vertical" >    <include layout="@layout/headbar" />    <View        android:layout_width="fill_parent"        android:layout_height="1dip"        android:layout_marginTop="10dip"        android:background="@color/first_use_bg" />    <ScrollView        android:layout_width="fill_parent"        android:layout_height="0dip"        android:layout_weight="1" >        <LinearLayout            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:layout_marginLeft="15dip"            android:layout_marginRight="15dip"            android:gravity="center"            android:orientation="vertical" >            <TimePicker                android:id="@+id/timePicker"                android:layout_width="wrap_content"                android:layout_height="wrap_content" />            <LinearLayout                android:layout_width="fill_parent"                android:layout_height="wrap_content"                android:gravity="center"                android:orientation="horizontal" >                <TextView                    android:id="@+id/normal_setting_one"                    style="@style/weekday_textView_normal"                    android:text="@string/one" />                <TextView                    android:id="@+id/normal_setting_two"                    style="@style/weekday_textView_normal"                    android:text="@string/two" />                <TextView                    android:id="@+id/normal_setting_three"                    style="@style/weekday_textView_normal"                    android:text="@string/three" />                <TextView                    android:id="@+id/normal_setting_four"                    style="@style/weekday_textView_normal"                    android:text="@string/four" />                <TextView                    android:id="@+id/normal_setting_five"                    style="@style/weekday_textView_normal"                    android:text="@string/five" />                <TextView                    android:id="@+id/normal_setting_six"                    style="@style/weekday_textView_normal"                    android:text="@string/six" />                <TextView                    android:id="@+id/normal_setting_seven"                    style="@style/weekday_textView_normal"                    android:text="@string/seven" />            </LinearLayout>            <LinearLayout style="@style/setting_lay" >                <TextView                    style="@style/setting_textview"                    android:text="@string/alarm_name" />                <TextView                    android:id="@+id/name_alarm1"                    style="@style/setting_textview"                    android:hint="@string/name" />            </LinearLayout>            <View                style="@style/dviderLine"                android:background="@color/main_attime" />            <LinearLayout style="@style/setting_lay" >                <TextView                    style="@style/setting_textview"                    android:text="@string/alarm_music" />                <TextView                    android:id="@+id/choice_music1"                    style="@style/setting_textview"                    android:hint="@string/init_music" />            </LinearLayout>            <View                style="@style/dviderLine"                android:background="@color/main_attime" />            <LinearLayout style="@style/setting_lay" >                <TextView                    style="@style/setting_textview"                    android:text="@string/alarm_virbation" />                <LinearLayout                    android:layout_width="0dip"                    android:layout_height="wrap_content"                    android:layout_weight="1"                    android:gravity="center" >                    <TextView                        android:id="@+id/setting_alarm_vibrateswitch1"                        android:layout_width="wrap_content"                        android:layout_height="wrap_content"                        android:background="@drawable/setting_switch_bg" />                </LinearLayout>            </LinearLayout>            <View                style="@style/dviderLine"                android:background="@color/main_attime" />            <LinearLayout style="@style/setting_lay" >                <TextView                    style="@style/setting_textview"                    android:text="@string/alarm_voice" />                <LinearLayout                    android:layout_width="0dip"                    android:layout_height="wrap_content"                    android:layout_weight="1"                    android:gravity="center" >                    <TextView                        android:id="@+id/name_alarm_voice1"                        android:layout_width="wrap_content"                        android:layout_height="wrap_content"                        android:background="@drawable/setting_switch_bg" />                </LinearLayout>            </LinearLayout>            <View                style="@style/dviderLine"                android:background="@color/main_attime" />            <LinearLayout style="@style/setting_lay" >                <TextView                    style="@style/setting_textview"                    android:text="@string/alarm_delay" />                <TextView                    android:id="@+id/name_alarm_delay1"                    style="@style/setting_textview"                    android:hint="@string/init_delaytime" />            </LinearLayout>            <View                style="@style/dviderLine"                android:background="@color/main_attime" />            <LinearLayout style="@style/setting_lay" >                <TextView                    style="@style/setting_textview"                    android:text="@string/alarm_ringtime" />                <TextView                    android:id="@+id/alarm_ringtime1"                    style="@style/setting_textview"                    android:hint="@string/init_ringtime" />            </LinearLayout>            <View                style="@style/dviderLine"                android:layout_marginBottom="10dip"                android:background="@color/main_attime" />        </LinearLayout>    </ScrollView>    <LinearLayout        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_marginTop="5dip"        android:background="@drawable/setting_bottomlay_bg"        android:orientation="horizontal" >        <TextView            android:id="@+id/normal_setting_sure"            android:layout_width="fill_parent"            android:layout_height="wrap_content"            android:layout_marginBottom="10dip"            android:layout_marginLeft="20dip"            android:layout_marginRight="20dip"            android:layout_marginTop="20dip"            android:background="@drawable/setting_sure_bottom_bg"            android:clickable="true"            android:gravity="center"            android:minHeight="45dip"            android:text="@string/sure"            android:textSize="20sp" />    </LinearLayout></LinearLayout>

这个布局就只有一个timepicker其他全部是在timepicker响应的接口中

timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
setTime2data(hourOfDay, minute);
}
});

setTime2data方法中取得时间,但是发现只有按加减的按钮的才可以监听到,网上百度很久没找到原因,今天发现在timepicker还在拥有焦点的时候是无法回调监听函数的(其实仔细想想也知道用户在不断修改的时候,是不会回调的),于是在键盘输入响应回调函数就让timepicker失去焦点即可。

记下来提醒自己


0 0