现在要添加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的日期选择器不好用