如何在单个屏幕中使用2个时间戳?

时间:2016-09-28 06:48:18

标签: android timepicker

我想在单个屏幕中使用两个TimePicker ..

我试过但问题是当我选择一个timepicker时,它会在另一个文本视图中自动生成相同的时间。

此处 MainActivity.java

       package com.example.sachin.timepicker;

import android.app.Activity;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.TimePicker;

import java.util.Calendar;

public class MainActivity extends  Activity {

    private TextView tvDisplayTime, tvDisplayTime1;
    private TimePicker timePicker1;
    private Button btnChangeTime, btnChangeTime1;

    private int hour;
    private int minute;

    static final int TIME_DIALOG_ID = 999;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        setCurrentTimeOnView();
        addListenerOnButton();

    }

    // display current time
    public void setCurrentTimeOnView() {

        tvDisplayTime = (TextView) findViewById(R.id.tvTime);
        tvDisplayTime1 = (TextView) findViewById(R.id.tvTime1);
        //  timePicker1 = (TimePicker) findViewById(R.id.timePicker1);

        final Calendar c = Calendar.getInstance();
        hour = c.get(Calendar.HOUR_OF_DAY);
        minute = c.get(Calendar.MINUTE);

        // set current time into textview
        tvDisplayTime.setText(new StringBuilder().append(pad(hour)).append(":")
                .append(pad(minute)));
        tvDisplayTime1.setText(new StringBuilder().append(pad(hour)).append(":")
                .append(pad(minute)));
        // set current time into timepicker
        //timePicker1.setCurrentHour(hour);
        //timePicker1.setCurrentMinute(minute);

    }

    public void addListenerOnButton() {

        btnChangeTime = (Button) findViewById(R.id.btnChangeTime);
        btnChangeTime1 = (Button) findViewById(R.id.btnChangeTime1);

        btnChangeTime.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                showDialog(TIME_DIALOG_ID);

            }

        });


        btnChangeTime1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

                showDialog(TIME_DIALOG_ID);

            }

        });

    }


    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
            case TIME_DIALOG_ID:
                // set time picker as current time
                return new TimePickerDialog(this, timePickerListener, hour, minute,
                        false);

        }
        return null;
    }

    private TimePickerDialog.OnTimeSetListener timePickerListener = new TimePickerDialog.OnTimeSetListener() {
        public void onTimeSet(TimePicker view, int selectedHour,
                              int selectedMinute) {
            hour = selectedHour;
            minute = selectedMinute;

            // set current time into textview
            tvDisplayTime.setText(new StringBuilder().append(pad(hour))
                    .append(":").append(pad(minute)));
            tvDisplayTime1.setText(new StringBuilder().append(pad(hour))
                    .append(":").append(pad(minute)));

            // set current time into timepicker
         //   timePicker1.setCurrentHour(hour);
           // timePicker1.setCurrentMinute(minute);

        }
    };

    private static String pad(int c) {
        if (c >= 10)
            return String.valueOf(c);
        else
            return "0" + String.valueOf(c);
    }
}

1 个答案:

答案 0 :(得分:0)

您需要跟踪点击的时间按钮INSERT INTO bind_test SELECT TO_CHAR(:val_1, '00') AS col_1 FROM dual; 然后在您的isTimePickerFromClicked=True按钮中点击,将此标记设置为from

在您False之前检查setTextisTimePickerFromClicked还是True or False

更新1:您的代码

setText

注意:删除了一些代码以减少长度。