Androidのアラームアプリが上手く動きません。
仕様は、
・TimePickerで時間をセット(12時間表示)
・EditTextでやることを書く
・セットというボタンを押すと時間になると通知される
です。
しかし、
セットというボタンを押すとすぐ通知されてしまいます。
ログはまた見れてません。
また、しばらく返信はすぐに出来ないと思います。
Java
1import android.content.*; 2import android.app.*; 3public class Alarm extends BroadcastReceiver 4{ 5 6 @Override 7 public void onReceive(Context context, Intent receive){ 8 int Notificationid=receive.getIntExtra("notification",0); 9 NotificationManager notification=(NotificationManager) context.getSystemService(Context.LOCATION_SERVICE); 10 Intent boot=new Intent(context,MainActivity.class); 11 12 PendingIntent contentintent=PendingIntent.getActivity(context,0,boot,0); 13 14 Notification.Builder builder=new Notification.Builder(context); 15 16 builder.setSmallIcon(android.R.drawable.ic_dialog_alert) 17 .setContentTitle("時間になりました") 18 .setContentText(receive.getCharSequenceExtra("TODO")) 19 .setWhen(System.currentTimeMillis()) 20 .setPriority(Notification.PRIORITY_DEFAULT) 21 .setAutoCancel(true) 22 .setDefaults(Notification.DEFAULT_SOUND) 23 .setContentIntent(contentintent); 24 notification.notify(Notificationid,builder.build()); 25 } 26}
java
1import android.app.*; 2import android.os.*; 3import android.widget.*; 4import android.view.View.*; 5import android.view.*; 6import android.view.inputmethod.*; 7import android.content.*; 8import java.util.*; 9public class MainActivity extends Activity implements OnClickListener{ 10 private RelativeLayout layout; 11 private InputMethodManager im; 12 private int notificationId=0; 13 @Override 14 public void onClick(View view){ 15 EditText edit=(EditText) findViewById(R.id.editText); 16 Intent bootintent=new Intent(this,Alarm.class); 17 bootintent.putExtra("notification",notificationId); 18 bootintent.putExtra("TODO",edit.getText()); 19 PendingIntent alarmintent=PendingIntent.getBroadcast(MainActivity.this,0,bootintent,PendingIntent.FLAG_CANCEL_CURRENT); 20 AlarmManager alarm=(AlarmManager) getSystemService(Context.ALARM_SERVICE); 21 TimePicker timepicker=(TimePicker) findViewById(R.id.timePicker); 22 23 switch(view.getId()){ 24 case R.id.set: 25 int hour=timepicker.getCurrentHour(); 26 int minute=timepicker.getCurrentMinute(); 27 28 Calendar start=Calendar.getInstance(); 29 start.set(Calendar.HOUR_OF_DAY,hour); 30 start.set(Calendar.MINUTE,minute); 31 start.set(Calendar.SECOND,0); 32 long alarmstart=start.getTimeInMillis(); 33 34 alarm.set(AlarmManager.RTC_WAKEUP,alarmstart,alarmintent); 35 36 Toast.makeText(MainActivity.this,"通知をセットしました",Toast.LENGTH_SHORT).show(); 37 notificationId++; 38 break; 39 case R.id.cancel: 40 alarm.cancel(alarmintent); 41 Toast.makeText(MainActivity.this,"通知をキャンセルしました",Toast.LENGTH_SHORT).show(); 42 break; 43 } 44 } 45 46 47 @Override 48 protected void onCreate(Bundle savedInstanceState) 49 { 50 super.onCreate(savedInstanceState); 51 setContentView(R.layout.main); 52 53 54 layout=(RelativeLayout) findViewById(R.id.mainLayout); 55 56 im=(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 57 Button Click=(Button) findViewById(R.id.set); 58 Click.setOnClickListener(this); 59 60 Button cancel=(Button) findViewById(R.id.cancel); 61 cancel.setOnClickListener(this); 62 } 63 64 @Override 65 public boolean onTouchEvent(MotionEvent event) 66 { 67 im.hideSoftInputFromWindow(layout.getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS); 68 layout.requestFocus(); 69 return false; 70 } 71}
どうか宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/11 10:55 編集
2016/04/11 12:32