我看过较旧的帖子,并且所有答案都建议使用clearFocus。
我不能这样做,因为我的TimePicker不在对话框中,所以我不知道什么时候应该调用clearFocus()函数,如果我之后尝试修改TimePicker,它可能会崩溃我的应用程序。
我确定这个问题有一个解决方案,因为Android附带的Alarm应用程序在没有对话框的情况下执行此功能。
欢迎任何回答, 问候!
答案 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>
希望,它会帮助你!