Java 如何自定义时间选择器以仅显示/设置1-12小时,而不显示(上午/下午和分钟)API 19并禁用侦听器
我想用一个时间选择器向人体展示医学现象在上下文中的位置 例:一个人的右脚在7点钟时受伤。(用于右脚内侧的图片) 为此,我想使用一个时间选择器,它使用时钟显示,只启用1-12小时,禁用am/pm选择器和分钟选择器 第二个问题我需要使用API 19,它不支持设置/获取小时/分钟。(在测试时看到了这一点,但不知道这是否会因为API 23 req而影响来自时间选择器的更多方法。) 为了测试这一点,我在一个示例项目中添加了一个时间选择器: 活动\u main.xml:Java 如何自定义时间选择器以仅显示/设置1-12小时,而不显示(上午/下午和分钟)API 19并禁用侦听器,java,android,android-timepicker,Java,Android,Android Timepicker,我想用一个时间选择器向人体展示医学现象在上下文中的位置 例:一个人的右脚在7点钟时受伤。(用于右脚内侧的图片) 为此,我想使用一个时间选择器,它使用时钟显示,只启用1-12小时,禁用am/pm选择器和分钟选择器 第二个问题我需要使用API 19,它不支持设置/获取小时/分钟。(在测试时看到了这一点,但不知道这是否会因为API 23 req而影响来自时间选择器的更多方法。) 为了测试这一点,我在一个示例项目中添加了一个时间选择器: 活动\u main.xml: <TableLayout xm
<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>
因此,我能够使分钟不可点击和am/pm选择器不可见(消失)
如何找到将径向时钟从小时切换到分钟的监听器?为什么每天只允许12小时?到目前为止还没有意义……在medicin中,你使用测量小时来定位事物,这些时间从1到12。如果你有一个人,12点将是头部,9点将是右臂等。这只是为了方便(从事医学工作的人已经习惯了这一点,所以我想在应用程序中应用它以及可用性的目的)。因此,时钟的实际值不是“时间”,而是“位置”。谢谢你的代码帮助我隐藏了很多分钟
@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
}
});
}