책에서 한 메모장 예제와 검색해서 잘 돌아가는 알람 예제 두개를 합치려고 했습니다.
단독적으로 둘다 잘돌아가는 거구요 메모장 예제 내에 버튼생성시켜놔서 누르면
액티비티를 전환시켜서 알람을 설정하도록 띄우려고 했습니다만..
앱이 팅구더라구요.. 계속 삽질만 하다가 올려봅니다 ㅠㅠ
널포인터 익셉션이 뜨길래 검색도 해보고, 어디 물어보기도했는데 findbyID 안해줘서 그렇다 라는 답변들을 보았습니다만..
일단 에러메시지입니다.
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.test.databaseexam1/com.example.test.databaseexam1.AlermActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2955)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3030)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6938)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at com.example.test.databaseexam1.AlermActivity.onCreate(AlermActivity.java:48)
at android.app.Activity.performCreate(Activity.java:7183)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)
단순히 인텐트로 이렇게 화면전환만 해줍니다
public void alerm(View view) {
Intent intent = new Intent(getApplicationContext(), AlermActivity.class);
startActivity(intent);
}
해당 온클릭리스너 부분입니다.
Button alarm_on = findViewById(R.id.btn_start);
alarm_on.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void onClick(View v) {
Log.d("tag","테스트");
// calendar에 시간 셋팅
calendar.set(Calendar.HOUR_OF_DAY, alarm_timepicker.getHour());
calendar.set(Calendar.MINUTE, alarm_timepicker.getMinute());
// 시간 가져옴
int hour = alarm_timepicker.getHour();
int minute = alarm_timepicker.getMinute();
Toast.makeText(context,"Alarm 예정 " + hour + "시 " + minute + "분",Toast.LENGTH_SHORT).show();
// reveiver에 string 값 넘겨주기
my_intent.putExtra("state","alarm on");
pendingIntent = PendingIntent.getBroadcast(context, 0, my_intent,
PendingIntent.FLAG_UPDATE_CURRENT);
// 알람셋팅
alarm_manager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
pendingIntent);
}
});
이렇게 find해줬는데도 널포인터입니다.. 구상이 어째되는지 모르시겠다면 전체 소스도 공개가능합니다
액티비티랑 코드가 많아서.. 해당 에러부분인듯 예상되는 곳을 긁어왔습니다
제발 도움좀 주세요 ㅠㅠ 자면서도 생각나서 고통입니다