2014-03-26 31 views
0

我正在開發一個用於汽車預訂的Android應用程序,並且我希望使定製的TimePicker對話框每15分鐘每隔一刻鐘進行一次。如何自定義時間選取器對話框15分鐘的分鐘進度

我的代碼:

package com.boosterbc.can; 
import java.util.Calendar; 
import java.util.Date; 
import android.app.Activity; 
import android.app.DatePickerDialog; 
import android.app.Dialog; 
import android.app.TimePickerDialog; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TimePicker; 

public class MainActivity extends Activity { 
    Button b1; 
    final Calendar time= Calendar.getInstance(); 
    private int pHour = time.get(Calendar.HOUR); 
    private int pMinute= time.get(Calendar.MINUTE); 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     b1=(Button)findViewById(R.id.bttime); 
     b1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       TimePickerDialog().show();  
      } 
     }); 
    } 
    public Dialog TimePickerDialog() 
    { 
     TimePickerDialog.OnTimeSetListener t= new TimePickerDialog.OnTimeSetListener() { 
      @Override 
      public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
       pHour=hourOfDay; 
       pMinute=minute; 
      } 
     }; 
     imePickerDialog dialog = new TimePickerDialog(this,t,pHour, pMinute,true); 
     return dialog; 
    } 
} 

回答

0

代替一個TimePickerDialog,使用DialogFragment具有兩個NumberPicker S於它的佈局:第一個爲小時,值從0到23,第二個爲分鐘,值從0 3個自定義顯示的值:

numberPickerMinutes.setMinValue(0); 
numberPickerMinutes.setMaxValue(3); 
numberPickerMinutes.setDisplayedValues(new String[]{"00", "15", "30", "45"}); 

後用戶挑選從分鐘選擇器的值,將其轉換爲分鐘:

pMinute = numberPickerMinutes.getValue() * 15; 
+0

朋友如何我可以開發兩個numberPiker對話,而不是timepickerdialog? – user3359518

+0

@ user3461457只需使用兩個號碼選取器創建新佈局,並用它擴大「DialogFragment」。關於使用對話框片段,請參閱http://developer.android.com/reference/android/app/DialogFragment.html –