2016-04-08 3 views
0

日付の値をsetBackgroundDrawableForDateにロードする際に、Android App内でCaldroid Libを使用してカスタムカレンダーを作成しています。次のコード行を使用しています。Caldroid関数でNullPointExceptionが発生しました。setBackgroundDrawableForDate

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; 
} 

} 

私は次のエラーが発生していますが、ここで何が問題なのか分かりません。

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

あなたのエラー '私は唯一の値を初期化していますLog' –

答えて

0

あなたの日付は28/04/2016であり、あなたはyyyy-MM-ddでそれを解析してみてください。それをdd/MM/yyyyに変更してください。

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

を理解するためのあなたの完全なコードを入れてください、値が datestrを= simpleDateFormat.parse(date_str)を使用してロードされます。 –

+0

@exaqtなぜあなたは 'date_Str'がヌルだと言っていますか? –

+0

私のせいで、 'dateStr'と' date_str'は私を混乱させていました。それは同じように見えましたが、そうではありません。 – Exaqt

関連する問題