Using timepicker to set time

烈酒焚心 提交于 2019-12-20 05:52:23

问题


There are two edit text ::

Onclick of edittext timepicker should pop up

How to use the time picker to select the date & set the date in the two edit text

  • I have googled abut timepicker
  • But i dont know how to launch the timepicker on click of edittext and set time

XML::

<LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:padding="3dp" >

                <TextView
                    android:id="@+id/lunch_from_textview_id"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/image1"
                    android:layout_toRightOf="@+id/lunch_button_id"
                    android:gravity="center"
                    android:paddingLeft="30dp"
                    android:text="From"
                    android:textColor="#000000"
                    android:textSize="15sp" />

                <EditText
                    android:id="@+id/from_lunch_edit_text_id"
                    android:layout_width="55dp"
                    android:layout_height="40dp" />

                <TextView
                    android:id="@+id/lunch_to_textview_id"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBottom="@+id/lunch_button_id"
                    android:layout_toRightOf="@+id/textView1"
                    android:gravity="center"
                    android:text="To"
                    android:textColor="#000000"
                    android:textSize="15sp" />

                <requestFocus />

                <EditText
                    android:id="@+id/to_lunch_edit_text_id"
                    android:layout_width="55dp"
                    android:layout_height="40dp"
                    android:ems="10" />
            </LinearLayout>

BuffetOfferings_MainFragmentActivity.java

public class BuffetOfferings_MainFragmentActivity extends FragmentActivity{

    Button back_button;

    FragmentManager manager;
    FragmentTransaction transaction;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.buffet_offerings_fragment_main_reference);

        Buffet_offerings_breakfast_menu1 breakfast_fragment=new Buffet_offerings_breakfast_menu1();
        Buffet_offerings_lunch_menu1 lunch_fragment=new Buffet_offerings_lunch_menu1();
        Buffet_offerings_dinner_menu1 dinner_fragment=new Buffet_offerings_dinner_menu1();

        manager=getSupportFragmentManager();
        transaction=manager.beginTransaction();

        transaction.add(R.id.BREAKFAST_LAYOUT_ID,breakfast_fragment, "breakfast_menu1_fragment");
        transaction.add(R.id.LUNCH_LAYOUT_ID,lunch_fragment, "lunch_menu1_fragment");
        transaction.add(R.id.DINNER_LAYOUT_ID,dinner_fragment, "dinner_menu1_fragment");

        transaction.commit();



        back_button=(Button) findViewById(R.id.TopNavigationBarRestaurantBuffetOfferingsBackButton);
        back_button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                finish();

            }
        });



    }



}

回答1:


Click on your EditText or Button....

mPickTimeButton.setOnClickListener(new OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            // show the time picker dialog
            DialogFragment newFragment = new TimePickerFragment();
            newFragment.show(getSupportFragmentManager(), "timePicker");
        }
    }); // this is on onCreate() method..

@Override
public void onTimePicked(Calendar time)
{
    // display the selected time in the TextView
    mPickedTimeText.setText(DateFormat.format("h:mm a", time));
}

After that create a class TimePickerFragment which is extends with DialogFragment

  public class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener
{
  private TimePickedListener mListener;

  @Override
 public Dialog onCreateDialog(Bundle savedInstanceState)
  {
    // use the current time as the default values for the picker
    final Calendar c = Calendar.getInstance();
    int hour = c.get(Calendar.HOUR_OF_DAY);
    int minute = c.get(Calendar.MINUTE);

    // create a new instance of TimePickerDialog and return it
    return new TimePickerDialog(getActivity(), this, hour, minute, DateFormat.is24HourFormat(getActivity()));
  }

  @Override
   public void onAttach(Activity activity)
  {
    // when the fragment is initially shown (i.e. attached to the activity), cast the activity to the callback interface type
    super.onAttach(activity);
    try
    {
        mListener = (TimePickedListener) activity;
    }
    catch (ClassCastException e)
    {
        throw new ClassCastException(activity.toString() + " must implement " + TimePickedListener.class.getName());
    }
  }

 @Override
 public void onTimeSet(TimePicker view, int hourOfDay, int minute)
 {
    // when the time is selected, send it to the activity via its callback interface method
    Calendar c = Calendar.getInstance();
    c.set(Calendar.HOUR_OF_DAY, hourOfDay);
    c.set(Calendar.MINUTE, minute);

    mListener.onTimePicked(c);
 }

  public static interface TimePickedListener
 {
    public void onTimePicked(Calendar time);
 }
}



回答2:


We can do it smriti3 ,Please try my below sample code and let me know if you found any issues,

 <EditText 
    android:id="@+id/add_TimePicker"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:singleLine="true"
    android:inputType="none"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:textColor="#38251f"                   
    android:focusable="false"/>    

And Add this sample code in within Activity

    Calendar mcurrentDate=Calendar.getInstance();
        int mHour=mcurrentDate.get(Calendar.HOUR_OF_DAY);
        int mMinute=mcurrentDate.get(Calendar.MINUTE);
        EditText mAddTime=(EditText)findViewById(R.id.add_TimePicker);    
        mAddTime.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub          

                        TimePickerDialog mTimePicker=new TimePickerDialog(AddNewMessage.this, new OnTimeSetListener() {                 
                            public void onTimeSet(TimePicker timepicker, int selectedhour, int selectedminute) {
                                // TODO Auto-generated method stub  

                             mAddTime.setText(selectedhour+":"+selectedminute);

                            }
                        },mHour, mMinute,true);
                        mTimePicker.setTitle("Set Time");
                        mTimePicker.show();   
    }
   });



回答3:


For opening Time Pcker Dialog you have to put one Button OR You should use one EditText so you can write on click event of Button or EditText...

You can find example here.



来源:https://stackoverflow.com/questions/20017666/using-timepicker-to-set-time

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!