私はアンドロイドホイールをタイムピッカーとして使用しており、以下のように値を取得しています
private void SetTime(Context activity, int hour, int minute) {
LayoutInflater inf = LayoutInflater.from(activity);
// layout of alert box contains
View view = inf.inflate(R.layout.wheel, null);
final WheelView hours = (WheelView) view.findViewById(R.id.hours);
hours.setViewAdapter(new NumericWheelAdapter(activity, 0, 23,"%02d"));
hours.setCyclic(true);
hours.setCurrentItem(expiryHour);
Log.d(TAG, "for expiryHour123456 ---> " + expiryHour);
final WheelView mins = (WheelView) view.findViewById(R.id.minutes);
mins.setViewAdapter(new Mywheel(activity, 0, 59,"%02d"));
mins.setCyclic(true);
mins.setCurrentItem(expiryMinute);
Log.d(TAG, "for expiryMinute123456 ---> " + expiryMinute);
new AlertDialog.Builder(activity)
.setMessage("Set Time For Post To AutoDelete")
.setView(view)
.setPositiveButton("Set",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
expiryHour = hours.getCurrentItem();
Log.d(TAG, "for expiryHour ---> " + expiryHour);
if(mins.getCurrentItem() > 0){
expiryMinute = mins.getCurrentItem() + 4;
Log.d(TAG, "for expiryMinute ---> " + expiryMinute);
}else{
expiryMinute = mins.getCurrentItem();
}
}
});
}
時間を設定するときは正しい値を取得していますが、時間を変更したい場合は時間を何度も設定すると、分の値が間違って表示されます。たとえば、最初に2:10に設定してから、2:14の表示を開いたときに変更したかったのですが、これは発生しないはずです。