You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在onTimeSet方法设置后获取timePickerBTN文本并赋值给TextView

解决方案

方法1:直接复用格式化后的时间字符串(推荐)

不用额外从按钮获取文本,先把格式化好的时间字符串存起来,再同时给按钮和目标TextView设置,更高效:

// 先在Activity中初始化目标TextView(替换成你实际的控件ID)
TextView targetTimeTv = findViewById(R.id.target_time_tv);

timePickerBTN.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        TimePickerDialog timePickerDialog =  new TimePickerDialog(NewTaskActivity.this, new TimePickerDialog.OnTimeSetListener() {

            @Override
            public void onTimeSet(TimePicker timePicker, int hourOfDay, int Minute) {
                TimeHour = hourOfDay;
                TimeMinute = Minute;

                Calendar calendarTime = Calendar.getInstance();
                calendarTime.set(0,0,0, TimeHour, TimeMinute);
                // 先格式化出时间字符串
                CharSequence formattedTime = android.text.format.DateFormat.format("hh:mm aa", calendarTime);
                
                // 同时设置按钮和目标TextView的文本
                timePickerBTN.setText(formattedTime);
                targetTimeTv.setText(formattedTime);
            }

        },12,0,false);


        timePickerDialog.updateTime(TimeHour, TimeMinute);
        timePickerDialog.show();

    }

});

方法2:从按钮获取文本再设置

如果一定要从按钮获取已设置的文本,在setText之后直接调用getText()即可:

// 同样先初始化目标TextView
TextView targetTimeTv = findViewById(R.id.target_time_tv);

timePickerBTN.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        TimePickerDialog timePickerDialog =  new TimePickerDialog(NewTaskActivity.this, new TimePickerDialog.OnTimeSetListener() {

            @Override
            public void onTimeSet(TimePicker timePicker, int hourOfDay, int Minute) {
                TimeHour = hourOfDay;
                TimeMinute = Minute;

                Calendar calendarTime = Calendar.getInstance();
                calendarTime.set(0,0,0, TimeHour, TimeMinute);
                timePickerBTN.setText(android.text.format.DateFormat.format("hh:mm aa", calendarTime));
                
                // 获取按钮文本并设置给TextView
                targetTimeTv.setText(timePickerBTN.getText());
            }

        },12,0,false);


        timePickerDialog.updateTime(TimeHour, TimeMinute);
        timePickerDialog.show();

    }

});

关键注意点

  • 确保目标TextView已经通过findViewById完成初始化,且布局文件中的控件ID与代码中的一致。
  • 若在Fragment中使用,需在onViewCreated方法内初始化控件,或通过getView().findViewById()获取实例。

内容的提问来源于stack exchange,提问作者Divyanshu saraswat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 20:45:23