android-wheel having good example of time picker like iphone
how used android-wheel like Timepickerdialog ?
Follow below steps you can get output result like this dialog box..
Step 1. take checkout source code of android-wheel library project from this link http://android-wheel.googlecode.com/svn/trunk/wheel
Step 2. import project inside eclipse as android project
Step 3. Add this project as a library in your android project
Step 4. create a layout.xml for timepicker (example name of file :- wheeltime.xml)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:gravity="center" > <kankan.wheel.widget.WheelView android:id="@+id/hours" android:layout_width="60sp" android:layout_height="wrap_content" android:paddingRight="5sp" /> <kankan.wheel.widget.WheelView android:id="@+id/minutes" android:layout_width="60sp" android:layout_height="wrap_content" android:paddingLeft="5sp" /> </LinearLayout>
Step 5. call function that create android.app.Dialog with this layout. see below code
private void Timepick(Context cons, int curHours, int curMinutes) { LayoutInflater inf = LayoutInflater.from(cons); //layout of alert box contains View view = inf.inflate(R.layout.wheeltime, null); //hours wheel final WheelView hours = (WheelView) view.findViewById(R.id.hours); hours.setViewAdapter(new NumericWheelAdapter(cons, 0, 23)); hours.setCyclic(true); //minute wheel final WheelView mins = (WheelView) view.findViewById(R.id.minutes); mins.setViewAdapter(new NumericWheelAdapter(cons, 0, 59)); mins.setCyclic(true); new AlertDialog.Builder(cons) .setMessage("Select Time") .setView(view) .setPositiveButton("Set", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub //write code of lines, whatever want to with value of this timepicker //hour value= hours.getCurrentItem(); //minute value = mins.getCurrentItem(); } }) .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub return; } }).create().show(); // set time hours.setCurrentItem(curHours); mins.setCurrentItem(curMinutes); }