2016-07-09 17 views
0

Ich setze meine SelectDate auf LongPress, aber warum heißt es, dass meine SelectDate Null ist in HighlightCalander Funktion? Irgendwelche Ideen.NullPointer Ausnahme beim Aufruf einer Methode von onResume

Dieser Eventhandler in onCreate (Main Activity) genannt: -

calendarview.setEventHandler(new CalendarView.EventHandler() 
     { 
      @Override 
      public void onDayLongPress(Date date) 
      { 
       DateFormat df = SimpleDateFormat.getDateInstance(); 
       selectDate = date; 
       System.out.println(selectDate); 
       intent1 = new Intent(getApplicationContext(), MakeAppointmentsActivity.class); 
       intent1.putExtra("DATE",df.format(date)); 
       startActivity(intent1); 
      } 

Diese Funktion ist in onResume (Main Activity) genannt wird: -

public void HighlightCalendar() 
    { 
     intent2 = getIntent(); 
     // get my boolean from save button 
     boolean savedDate = intent2.getBooleanExtra("savedDate", false); 
     // if i pressed my saved button 
     if(savedDate) { 
      Toast.makeText(this,"true",Toast.LENGTH_SHORT).show(); 
      try { 
       DateFormat df = SimpleDateFormat.getDateInstance(); 
       SimpleDateFormat curFormater = new SimpleDateFormat("MMM yyyy"); 
       String dateString = df.format(selectDate); 
       Date dateObj = curFormater.parse(dateString); 
       events.add(dateObj); 
       calendarview.updateCalendar(events); 
      }catch (ParseException e){ 
       e.printStackTrace(); 
      } 
} 
     else 
     { 
      Toast.makeText(this,"false",Toast.LENGTH_SHORT).show(); 
     } 
    } 
+0

Wenn Sie 'DATE' anstelle von 'savedDate' übergeben, erhalten Sie auch String from Intent anstelle von 'bool' weil' df.format (date) 'return String –

+0

Mögliche Duplikate von [Was ist eine NullPointerException, und wie behebe ich sie? ] (http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-fix-it) –

Antwort

1

Sie zuweisen ein Wert zu selectDate in onDayLongPress, aber Sie verwenden es in onResume. Jedes Mal, wenn Sie ein ActivityonCreate() und onResume() erstellen, werden aufgerufen. Sie erhalten eine NUllpointerException, weil in onResume() (die vor onDayLongPress aufgerufen wird) selectDate nicht initialisiert wird und daher null. Sie können selectDate in einer der 2 Methoden initialisieren, um die Ausnahme zu vermeiden.

Verwandte Themen