关于timepicker 设定定时闹钟的问题

wyhzjr 2015-04-27 11:27:28
最近想做一个关于闹钟的小东西,但是不知道为什么用timepicker为什么不能设定呢?

这是主程序:
package com.example.clockdemo2;


import java.util.Calendar;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TimePicker;
import android.widget.Toast;


public class MainActivity extends Activity {
private int my_hour;
private int my_minute;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn=(Button)findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent it=new Intent(MainActivity.this,Next.class);
PendingIntent pi=PendingIntent.getActivity(MainActivity.this, 0, it, 0);
TimePicker tp=(TimePicker)findViewById(R.id.timePicker1);
my_hour=tp.getCurrentHour();
my_minute=tp.getCurrentMinute();
Calendar c=Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
c.set(Calendar.HOUR, my_hour);
c.set(Calendar.MINUTE,my_minute);
AlarmManager a=(AlarmManager) getSystemService(Service.ALARM_SERVICE);
a.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pi);
Toast.makeText(MainActivity.this, "设置成功", Toast.LENGTH_SHORT).show();
}
});
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}


这是跳转的页面(就相当于定时闹铃提示作用,用跳转页面代替了)
package com.example.clockdemo2;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class Next extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_next);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.next, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}



布局相当简单,就不贴了,一个button和一个timepicker 有没有前辈用timepicker获取时间做一个定时的闹钟?帮我看看哪里出错了,谢谢,分不多了。。希望大家给帮帮忙
...全文
198 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
keep1315345 2015-12-24
  • 打赏
  • 举报
回复
楼主那个其实是可以的、由于模拟器时间延迟。多等1分钟就会看到效果了。不过建议把这个 c.set(Calendar.HOUR, my_hour); 改为c.set(Calendar.HOUR_OF_DAY, my_hour); 这是我自己写的代码: package com.example.vince; import java.util.Calendar; import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.TimePicker; import android.widget.Toast; public class MainActivity extends Activity { private TimePicker timePicker; private Calendar c; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); c=Calendar.getInstance(); c.setTimeInMillis(System.currentTimeMillis()); timePicker=(TimePicker) findViewById(R.id.timePicker); timePicker.setIs24HourView(true); /*//由于timePicker会自动显示系统默认的当前时间。以下2个可不写 timePicker.setCurrentHour(c.get(Calendar.HOUR_OF_DAY));//设置当前的小时 timePicker.setCurrentMinute(c.get(Calendar.MINUTE));//设置当前的分钟 */ } public void settingAlarm(View v){ Intent intent=new Intent(this,AlarmActivity.class); PendingIntent pendingIntent=PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager alarmManager=(AlarmManager) getSystemService(ALARM_SERVICE); c.set(Calendar.HOUR_OF_DAY, timePicker.getCurrentHour()); c.set(Calendar.MINUTE, timePicker.getCurrentMinute()); alarmManager.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pendingIntent); Toast.makeText(this, "设置成功", 2000).show(); } } 跳转页面的代码: import android.app.Activity; import android.os.Bundle; public class AlarmActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.alarm_layout); } }
wyhzjr 2015-04-28
  • 打赏
  • 举报
回复
有没有人个解释啊啊啊。。求解答

80,348

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧