从Timepicker的编辑文本中获取时间

时间:2012-09-10 17:13:50

标签: android android-edittext android-softkeyboard timepicker numberpicker

我看过较旧的帖子,并且所有答案都建议使用clearFocus。

我不能这样做,因为我的TimePicker不在对话框中,所以我不知道什么时候应该调用clearFocus()函数,如果我之后尝试修改TimePicker,它可能会崩溃我的应用程序。

我确定这个问题有一个解决方案,因为Android附带的Alarm应用程序在没有对话框的情况下执行此功能。

欢迎任何回答, 问候!

1 个答案:

答案 0 :(得分:2)

如果用户通过点击加号或减号更改小时或分钟值,或者手动编辑时间,则应使用 TimePicker.OnTimeChangedListener 来处理 onTimeChanged 操作键盘。

这是我的代码

的活动:

public class MainActivity extends Activity 
    implements TimePicker.OnTimeChangedListener {

    private TextView resultTime;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        resultTime = (TextView) findViewById(R.id.activity_main_textview_resulttime);

        TimePicker timePicker = (TimePicker) findViewById(R.id.activity_main_timepicker);
        {    
            timePicker.setIs24HourView(true);
            timePicker.setOnTimeChangedListener(this);
        }
    }

    @Override
    public void onTimeChanged(TimePicker timePickerView, int hours, int minutes) {
        final String stringNewTime = hours + " : " + minutes;
        resultTime.setText(stringNewTime);
    }   
}

布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:gravity="center"
    android:orientation="vertical" >

    <TimePicker
        android:id="@+id/activity_main_timepicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="14dip"
        android:layout_marginRight="16dip"
        android:focusable="true"
        android:focusableInTouchMode="true" />

    <TextView
        android:id="@+id/activity_main_textview_resulttime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

希望,它会帮助你!