2016-04-08 14 views
0

Android App'im içinde özel bir takvim oluşturmak için Caldroid Lib kullanıyorum, setBackgroundDrawableForDate'da bir tarih değeri yüklerken aşağıdaki kod satırlarını kullanıyorum.Caldroid işlev kümesi üzerinde NullPointExceptionBackgroundDrawableForDate

public class CaldroidSample extends AppCompatActivity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.calendar_main); 

    CaldroidFragment caldroidFragment = new CaldroidFragment(); 
    Bundle args = new Bundle(); 
    Calendar cal = Calendar.getInstance(); 
    args.putInt(CaldroidFragment.MONTH, cal.get(Calendar.MONTH) + 1); 
    args.putInt(CaldroidFragment.YEAR, cal.get(Calendar.YEAR)); 

    caldroidFragment.setArguments(args);caldroidFragment.setBackgroundDrawableForDate(new ColorDrawable(Color.GREEN), ParseDate("28/04/2016")); 

    getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, caldroidFragment).commit(); 

} 

public Date ParseDate(String date_str) 
{ 
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
      "yyyy-MM-dd", Locale.getDefault()); 
    Date dateStr = null; 
    try { 
     dateStr = simpleDateFormat.parse(date_str); 
    } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    return dateStr; 
} 

} 

Aşağıdaki hatayı alıyorum, sorunun ne olduğunu bilmiyorum.

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.vv.melioring.calendarapp/com.vv.melioring.calendarapp.CaldroidSample}: java.lang.NullPointerException: Attempt to invoke virtual method 'long java.util.Date.getTime()' on a null object reference 

at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2339) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2413) 
at android.app.ActivityThread.access$800(ActivityThread.java:155) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1317) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5343) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700) 
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'long java.util.Date.getTime()' on a null object reference 
at java.util.Calendar.setTime(Calendar.java:1195) 
at com.roomorama.caldroid.CalendarHelper.convertDateToDateTime(CalendarHelper.java:112) 
at com.roomorama.caldroid.CaldroidFragment.setBackgroundDrawableForDate(CaldroidFragment.java:433) 
at com.vv.melioring.calendarapp.CaldroidSample.onCreate(CaldroidSample.java:66) 
at android.app.Activity.performCreate(Activity.java:6010) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1129) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2413)  
at android.app.ActivityThread.access$800(ActivityThread.java:155)  
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1317)  
at android.os.Handler.dispatchMessage(Handler.java:102)  
at android.os.Looper.loop(Looper.java:135)  
at android.app.ActivityThread.main(ActivityThread.java:5343)  
at java.lang.reflect.Method.invoke(Native Method)  
at java.lang.reflect.Method.invoke(Method.java:372)  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)  
+0

sizin Hata 'Ben sadece değerini başlatılıyor am Log' –

cevap

0

tarihiniz 28/04/2016 olduğunu ve yyyy-MM-dd ile ayrıştırmak deneyin. dd/MM/yyyy olarak değiştirin.

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault()); 
+0

anlamak için tam bir kod koyun lütfen, değer dateStr = simpleDateFormat.parse (date_str) kullanılarak yüklenir; –

+0

@Exaqt neden date_Str' null diyorsunuz? –

+0

Hatam, 'dateStr' ve' date_str' beni karıştırıyordu. Aynı gibi görünüyordu ama değil. – Exaqt