2014-04-24 3 views
0

내 응용 프로그램에서 날짜를 포함하는 공유 prefernces를 사용하여 2 차원 배열을 저장하고 있습니다. 배열 날짜를 현재 날짜와 일치시켜야합니다. 모든 것은 공개 공백입니다 onrecieve() 를 저장하는 때 현재 날짜와 공유 환경 설정에 저장된 문자열을 일치시키는 방법

나에게 오류를 제공하지 않습니다하지만 배열이 날짜로 내가 현재의 날짜와 일치 할 때 항상 false 나던 날 무엇없이 보여 그것은 결코 당신이

String[][] my_date; 
Set<String> checkDate; 

/* getting today date and coverting it into string */ 
Calendar cal=Calendar.getInstance(); 
int todaysDate = cal.get(Calendar.DAY_OF_MONTH); 
String cDate = Integer.toString(todaysDate); 

SharedPreferences pref = arg0.getSharedPreferences("MyPref", 0); // 0 - for private mode 
SharedPreferences.Editor editor = pref.edit(); 
Set<String> set = new HashSet<String>(); 
for(int i = 0; i < my_date.length; i++){ 
    for(int j = 0; j < my_date[i].length; j++){ 
     set.add("'" + my_date[i][j] + "'"); 
     Log.v("dates", my_date[i][j]); 
    } 
} 
editor.putStringSet("dates", set); 
editor.commit(); 

checkDate = pref.getStringSet("dates", set); 

if(checkDate.contains(cDate)){ 
    Intent mIntent = new Intent(arg0,DialogActivity.class); 
    mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    arg0.startActivity(mIntent); 
} 
+0

무엇합니까 로그인'cDate'와'my_date [I] [J]'인쇄? – Simulant

답변

0

물론 false 줄 것입니다. 어포 스트로피로 세트에 일 수를 입력하십시오. 따라서 Set에는 '1', '2', '3'과 같은 항목이 있습니다. String의 표현이 cDate 인 경우 해당 어포 스트로피가 없기 때문에 String.valueOf(1)"'1'"과 같지 않습니다. 이 대체하려고이와

set.add("'" + my_date[i][j] + "'"); 

을 :

set.add(my_date[i][j]); 
0

은 if 상태로 간다 문자열을 세트에 추가하기 전후에 '을 추가하십시오. 날짜 만 저장하려면 다음과 같이 변경하십시오. 당신의 문자열보다 같아야합니다 :

set.add(my_date[i][j]);//instead of set.add("'" + my_date[i][j] + "'"); 
관련 문제