如何清除TimePicker editText?

How to clear TimePicker editText?

Activity B中,我有两个可点击的editText(TI,TO),一个保存Button。单击 EditText 时,将显示 TimePicker dialog。将Button用来return这两个值保存到ActivityA.

现在的问题是 EditText 将在 Activity 上显示从 TimePicker dialog 获得的最新值 甚至在 Activity 上没有选择任何值B

假设在 Activity B 中,我在 TI 中输入了 1:00,在 TO 中输入了 2:00。第二次,我在Activity B EditText上没有输入任何内容,然后按按钮return到A,它仍然会显示1:00和2:00关于 Activity A.

Activity B

      timeIn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) { //shows timePick
                    Fragment fragDialog = getSupportFragmentManager().findFragmentByTag("TimePicker");
                    if (fragDialog == null) { // Fragment not added
                        tp.setFlag(TimePick.FLAG_START_DATE);
                        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
                        tp.show(ft, "TimePicker");
                    } else {

                        // already active
                    }
                }
            });

            timeOut.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View v)
                {
                    Fragment fragDialog = getSupportFragmentManager().findFragmentByTag("TimePicker");
                    if(fragDialog == null)
                    {  // Fragment not added
                        tp.setFlag(TimePick.FLAG_END_DATE);
                        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
                        tp.show(ft, "TimePicker");
                    }
                    else
                    {
                        // already active
                    }
                }
            });

  public static class TimePick extends android.support.v4.app.DialogFragment implements TimePickerDialog.OnTimeSetListener {

        public static final int FLAG_START_DATE = 00;
        public static final int FLAG_END_DATE = 01;
        private int flag = 00;

        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {

            final Calendar c = Calendar.getInstance();
            int hour = c.get(Calendar.HOUR_OF_DAY);
            int minute = c.get(Calendar.MINUTE);
            return new TimePickerDialog(getActivity(), this, hour, minute, DateFormat.is24HourFormat(getActivity()));
        }

        public void setFlag(int i) {
            flag = i;
        }


        @Override
        public void onTimeSet(TimePicker view, int hourofDay, int minute) {

            if (flag == FLAG_START_DATE) {
                T1.setText(Integer.toString(hourofDay) + ":" + Integer.toString(minute));
                TimeIn = T1.getText().toString();
            }
            if (flag == FLAG_END_DATE) {
                TO.setText(Integer.toString(hourofDay) + ":" + Integer.toString(minute));
                TimeOut = TO.getText().toString();
            }

        }

  save.setOnClickListener(new View.OnClickListener()
        {  // return values to A activity
            @Override
            public void onClick(View v)
            {
                Intent returnIntent=new Intent();
                returnIntent.putExtra("TimeIn", TimeIn);
                returnIntent.putExtra("TimeOut",TimeOut);
                setResult(Activity.RESULT_OK,returnIntent);
                finish();

            }
        });

Activity一个

       @Override
            public void onActivityResult(int requestCode, int resultCode, Intent data) { // receive from Activity B and populate ListView A
                if (resultCode == RESULT_OK) {
                    if (requestCode == PROJECT_REQUEST_CODE) {
                        ReceiveTimeIn = data.getStringExtra("TimeIn");
                        ReceiveTimeOut = data.getStringExtra("TimeOut");
   Toast.makeText(getApplicationContext(),ReceiveTimeIn+ReceiveTimeOut,Toast.LENGTH_LONG).show();
           }

Toast第二次显示null,结果显示1:00 2:00

已编辑 (Activity B)

  save.setOnClickListener(new View.OnClickListener() { // return values to  activity A

                 @Override
                 public void onClick(View v)
                 {
                      if (isEdited == false)
                      {
                          if(T1!=null||TO!=null) // if editText not clicked but has value pass from ListView A
                          {
                              // return T1 and TO value to listView Activity A
                          }
                          else { // if editText not clicked and no value passed, then only null
                              TimeIn = "";
                              TimeOut = "";
                          }
                      }

                 Intent returnIntent = new Intent();
                 Project = project.getSelectedItem().toString();
                 Description = description.getText().toString();
                 progress = seekBar.getProgress();
                 returnIntent.putExtra("Project", Project);
                 returnIntent.putExtra("Description", Description);
                 returnIntent.putExtra("progress", progress);
                 returnIntent.putExtra("TimeIn", TimeIn);
                 returnIntent.putExtra("TimeOut", TimeOut);
                 setResult(Activity.RESULT_OK, returnIntent);
                 finish();
                 }
          });

两个timeIn and timeOut edittextfindViewById之后将它们设置为空如下:

timeIn.setText(""); 
timeOut.setText(""); 

还有你的另外两个变量:

TimeIn = "";
TimeOut = "";