求解android timepicker 界面返回键Bug
Bug描述:timePicker界面仅有一个按钮,为确定,理论上若要取消就需要按下返回键,但是按下之后却直接显示了闹铃。附上按钮监听:publicvoidonClick(...
Bug描述:
timePicker界面仅有一个按钮,为确定,理论上若要取消就需要按下返回键,但是按下之后却直接显示了闹铃。
附上按钮监听:
public void onClick(View v) {
// TODO 自动生成的方法存根
Calendar currentTime = Calendar.getInstance();
new TimePickerDialog(MainActivity.this,
0,
new TimePickerDialog.OnTimeSetListener()
{
public void onTimeSet(TimePicker tp, int hourOfDay,
int minute)
{
Intent intent = new Intent(MainActivity.this
, AlarmActivity.class);
PendingIntent pi = PendingIntent.getActivity(
MainActivity.this, 0, intent, 0);
Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
c.set(Calendar.HOUR , hourOfDay);
c.set(Calendar.MINUTE , minute);
aManager.set(AlarmManager.RTC_WAKEUP
, c.getTimeInMillis(), pi);
Toast.makeText(MainActivity.this ,
"闹铃已设置!" , Toast.LENGTH_SHORT).show();
}
}, currentTime.get(Calendar.HOUR_OF_DAY)
, currentTime.get(Calendar.MINUTE), false)
.show();
}
闹铃事件的类:
MediaPlayer alarmMusic;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// 加载指定音乐,并为之创建MediaPlayer对象
//alarmMusic = MediaPlayer.create(this, R.raw.ring);
alarmMusic.setLooping(true);
alarmMusic.start();
new AlertDialog.Builder(AlarmActivity.this)
.setTitle("简易通知")
.setMessage("请您查看你的提醒!")
.setPositiveButton(
"确定" ,
new OnClickListener()
{
public void onClick(DialogInterface dialog , int which)
{
alarmMusic.stop();
AlarmActivity.this.finish();
}
}
)
.show();
}
烦请高手解决,最好附上相应代码,新手第一次开发Android软件 展开
timePicker界面仅有一个按钮,为确定,理论上若要取消就需要按下返回键,但是按下之后却直接显示了闹铃。
附上按钮监听:
public void onClick(View v) {
// TODO 自动生成的方法存根
Calendar currentTime = Calendar.getInstance();
new TimePickerDialog(MainActivity.this,
0,
new TimePickerDialog.OnTimeSetListener()
{
public void onTimeSet(TimePicker tp, int hourOfDay,
int minute)
{
Intent intent = new Intent(MainActivity.this
, AlarmActivity.class);
PendingIntent pi = PendingIntent.getActivity(
MainActivity.this, 0, intent, 0);
Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
c.set(Calendar.HOUR , hourOfDay);
c.set(Calendar.MINUTE , minute);
aManager.set(AlarmManager.RTC_WAKEUP
, c.getTimeInMillis(), pi);
Toast.makeText(MainActivity.this ,
"闹铃已设置!" , Toast.LENGTH_SHORT).show();
}
}, currentTime.get(Calendar.HOUR_OF_DAY)
, currentTime.get(Calendar.MINUTE), false)
.show();
}
闹铃事件的类:
MediaPlayer alarmMusic;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// 加载指定音乐,并为之创建MediaPlayer对象
//alarmMusic = MediaPlayer.create(this, R.raw.ring);
alarmMusic.setLooping(true);
alarmMusic.start();
new AlertDialog.Builder(AlarmActivity.this)
.setTitle("简易通知")
.setMessage("请您查看你的提醒!")
.setPositiveButton(
"确定" ,
new OnClickListener()
{
public void onClick(DialogInterface dialog , int which)
{
alarmMusic.stop();
AlarmActivity.this.finish();
}
}
)
.show();
}
烦请高手解决,最好附上相应代码,新手第一次开发Android软件 展开
2个回答
展开全部
TimerPickerDialog的TimeSet方法会在任何动作发生同时执行,所以一般只在其中做一些必要的时间值获取赋值操作,其他操作必须交给setButton处理,设置DialogInterface.BUTTON_NEGATIVE添加取消按钮,设置DialogInterface.BUTTON_POSITIVE可以添加确定按钮同时替换完成按钮,这样就实现了基本Dialog的布局,不要去相信网上任何改源码的方法,要知道你想到的开发人员肯定已经想到了,遇到觉得是源码BUG尽量从其他方面尝试,开发人员不可能把你能看到的BUG暴露这么久不解决。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询