Hello-World
Hello-World

Reputation: 9545

set the edittext box with the time that the TimePickerDialog set

How do I make this time picker set the edittext box with the time that the TimePickerDialog set?

package com.example.d;

import java.util.Calendar;

import android.os.Bundle;
import android.app.Activity;
import android.app.TimePickerDialog;
import android.app.TimePickerDialog.OnTimeSetListener;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends Activity {

     /** Called when the activity is first created. */
        int hour,min;
        //static final int TIME_DIALOG_ID=0;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);





        EditText etOne = (EditText) findViewById(R.id.editText1);
        etOne.setOnClickListener(new EditText.OnClickListener() {
            public void onClick(View v) {
                    //Do stuff here

                Calendar c=Calendar.getInstance();
                int hour=c.get(Calendar.HOUR);
                int min=c.get(Calendar.MINUTE);



                showTimeDialog(v, hour, min);
            }
        });

        }
        OnTimeSetListener timeSetListener;
        public void showTimeDialog(View v, int hour, int min)
        {

            (new TimePickerDialog(this, timeSetListener, hour, min, true)).show();

            //how do I make this time picker set the edittext box with the time that the TimePickerDialog set
        }


    }

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/relativeLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" 
        android:width="320px">

        <requestFocus />
    </EditText>





</RelativeLayout>

Upvotes: 1

Views: 278

Answers (3)

Toon Borgers
Toon Borgers

Reputation: 3658

You have to creat an instance of OnTimeSetListener and in it's onTimeSet method you have the selected hour and minute.

Upvotes: 0

Apoorv
Apoorv

Reputation: 13520

You can do it in onTimeSetListener like this

private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener()
{

    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute)
    {
        setTimeEditText.setText(hour + ":" + minute);
    }
};

Upvotes: 2

naidu
naidu

Reputation: 350

   public class MainActivity extends Activity {


     int hour = -1, min = -1;
     static final int TIME_DIALOG_ID = 0;

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

       EditText etOne = (EditText) findViewById(R.id.editText1);
        etOne.setOnClickListener(new EditText.OnClickListener() {
          public void onClick(View v) {
               // Do stuff here
              if (hour == -1 || min == -1) {
                  Calendar c = Calendar.getInstance();
                  hour = c.get(Calendar.HOUR);
                  min = c.get(Calendar.MINUTE);
             }

            showTimeDialog(v, hour, min);
        }
    });

}

public void showTimeDialog(View v, int hour, int min) {
    (new TimePickerDialog(MainActivity.this, timeSetListener, hour, min,
            true)).show();
}

public TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() {

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

        hour = hourOfDay;
        min = minute;
        EditText et = (EditText) findViewById(R.id.editText1);
        et.setText(hour + " : " + min);

    }
  };
  }

Upvotes: 4

Related Questions