现在要添加TimePickerDialog功能。
代码如下:
public class Alarm extends LinearLayout {private Button button;private ListView listView;ArrayAdapter<Alarm.myalarm> adapter;public Alarm(Context context) {super(context);}public Alarm(Context context, AttributeSet attrs) {super(context, attrs);}public Alarm(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Override protected void onFinishInflate() {super.onFinishInflate();button=(Button)findViewById(R.id.btn1);listView=(ListView)findViewById(R.id.list1);adapter=new ArrayAdapter<Alarm.myalarm>(getContext(),android.R.layout.simple_list_item_1);listView.setAdapter(adapter);button.setOnClickListener(new OnClickListener() {@Override public void onClick(View view) {addAlarm();}});}public void addAlarm(){Calendar calendar=Calendar.getInstance();new TimePickerDialog(getContext(), new TimePickerDialog.OnTimeSetListener() {@Override public void onTimeSet(TimePicker timePicker, int hour, int minute) {Calendar c=Calendar.getInstance();c.set(Calendar.HOUR,hour);c.set(Calendar.MINUTE,minute);Calendar currenttime=Calendar.getInstance();if (c.getTimeInMillis()>currenttime.getTimeInMillis()){c.setTimeInMillis(c.getTimeInMillis()+24*60*60*1000);}adapter.add(new myalarm(c.getTimeInMillis()));}},calendar.get(Calendar.HOUR),calendar.get(Calendar.MINUTE),true).show();}class myalarm{private Calendar date;private long time=0;private String timeLabel="";public myalarm(long time){this.time=time;date=Calendar.getInstance();date.setTimeInMillis(time);timeLabel=String.format("%dM%dD%d:%d",date.get(Calendar.YEAR),date.get(Calendar.MONTH),date.get(Calendar.HOUR),date.get(Calendar.MINUTE));}public long getTime() {return time;}public String getTimeLabe() {return timeLabel;}@Override public String toString() {return timeLabel;}}}addalarm方法中的三个calendar真心很晕
此时点击添加按钮,可以弹出时间选择对话框,吐槽一下android的日期选择器不好用