首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何显示两次TimePickerDialog?

如何显示两次TimePickerDialog?
EN

Stack Overflow用户
提问于 2016-06-09 07:08:19
回答 2查看 518关注 0票数 0

我使用编译开放和关闭时间的库(AM & PM)。在用户选择AM之后,我想再次显示PM的TimePickerDialog然后,我想在AM+PM上显示TextView数据。这里有一个TimePickerDialog。

代码语言:javascript
复制
layout_time.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Calendar now = Calendar.getInstance();
                TimePickerDialog tpd = TimePickerDialog.newInstance(
                        MainActivity.this,
                        now.get(Calendar.HOUR_OF_DAY),
                        now.get(Calendar.MINUTE),
                        false
                );
                tpd.show(getFragmentManager(), "Timepickerdialog");
            }
        });

@Override
    public void onResume() {
        super.onResume();
        TimePickerDialog tpd = (TimePickerDialog) getFragmentManager().findFragmentByTag("Timepickerdialog");
        if (tpd != null) tpd.setOnTimeSetListener(this);
    }

@Override
    public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute, int second) {
        String time = hourOfDay + ":" + minute + " am";
        txt_time.setText(time);
    }
EN

回答 2

Stack Overflow用户

发布于 2016-06-09 07:13:07

显示第一个TimePicker方法中的第二个onTimeSet方法。

代码语言:javascript
复制
@Override
public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute, int second) {
    String time = hourOfDay + ":" + minute + " am";
    // call the second TimePicker's show() method from here
}

然后,将TextView的文本设置为第二个TimePickeronTimeSet,当您有两次的时候。

就像这样:

代码语言:javascript
复制
final Calendar now = Calendar.getInstance();
final TextView yourTextView = (TextView) findViewById(R.id.yourTextView);

new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        String time1 = hourOfDay + ":" + minute; // time from first picker

        // showing a second TimePicker immediately after the first time was set
        new TimePickerDialog(YourActivity.this, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                String time2 = hourOfDay + ":" + minute; // time from second picker
                yourTextView.setText(time1 + time2); // setting the TextView's text using both times
            }
        }, now.get(Calendar.HOUR_OF_DAY), now.get(Calendar.MINUTE), false).show();
    }
}, now.get(Calendar.HOUR_OF_DAY), now.get(Calendar.MINUTE), false).show();
票数 1
EN

Stack Overflow用户

发布于 2016-06-09 07:26:01

您必须在onTimeSet方法中处理这种情况。

代码语言:javascript
复制
@Override
public void onTimeSet(RadialPickerLayout view, int hourOfDay, int minute, int second) {

    if(amSelected){
       String amTime = hourOfDay + ":" + minute + " am";
      // call the second TimePicker's show() method from here
    }else if(pmSelected){
      String pmTime = hourOfDay + ":" + minute + " pm";
    }

    if(amSelected && pmSelected){
      //Set Data To textView
      yourtextView.setText(amTime +"-"+pmTime );
    }        

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37719062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档