我想使用TimePicker来显示医学现象在人体背景下的位置。
示例:A人7点钟右脚受伤。 (对于右脚内侧的图片)
为此,我想使用一个使用时钟显示的TimePicker,只启用1-12小时,并禁用上午/下午选择器和分钟选择器。
第二个问题我需要使用API 19,它不支持set / get hours / minutes。 (看到测试时,由于API 23 req,不知道是否会影响更多来自timepicker的方法。)
为了测试这个,我在一个示例项目中添加了一个时间选择器:
activity_main.xml :
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal">
<EditText
android:id ="@+id/edit_Message"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/edit_message"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
android:onClick="sendMessage"/>
</LinearLayout>
</TableRow>
<TableRow>
<LinearLayout>
<TimePicker
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/timePicker"
android:layout_column="1"
android:timePickerMode="clock" />
</LinearLayout>
</TableRow>
</TableLayout>
上面的时间选择器有小时,分钟和上午/下午拾取器,还有一个数字和径向时钟来直接选择时间(无轮)。这已经是我想要的形式了。
对于选择时间,我可以通过单击数字时钟或单击径向时钟(从小时数设置小时数到分钟数,将切换时钟从1-12切换到00 - 55)从小时切换到数分钟。 。)
我想禁用点击径向时钟(小时 - >分钟)的切换,并禁用数字时钟上的分钟部分。
在http://developer.android.com/reference/android/widget/TimePicker.html下,我没有找到任何有用的信息,可以指出我的解决方案。
所以我通过调试器查看了timepicker并访问了&#34;组件&#34;时间戳的个人化。
来自 MainActivity.java :
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TimePicker picker = (TimePicker) findViewById(R.id.timePicker);
picker.setIs24HourView(false);
LinearLayout pickerLL = (LinearLayout) picker.getChildAt(0); //only child of timepicker
RelativeLayout digitalRL = (RelativeLayout) pickerLL.getChildAt(0); //child 0 is digital clock, child 1 is radial clock
AppCompatTextView minutesTV = (AppCompatTextView) digitalRL.getChildAt(2); //TextView of minutes
minutesTV.setClickable(false);
//minutesTV.setVisibility(View.GONE);
LinearLayout ampmLL = (LinearLayout) digitalRL.getChildAt(3); // Layout of the am / pm picker
ampmLL.setVisibility(View.GONE);
picker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
//Put the change for timepicker hour here
}
});
}
所以我能够让分钟无法点击,而且/ pm picker invisibil(已经消失)。
如何找到将径向时钟从几小时切换到几分钟的监听器?