2014-11-19 3 views
2

두 개의 목록이 있습니다. 하나는 모든 폴더 목록을 반환하고 다른 하나는 최근 폴더 목록을 반환합니다. 내가하고 싶은 것은 각리스트를 서로 비교하는 것입니다. 일치하는 것이 발견되면 건배를 표시하십시오.두 목록을 비교하여 차이를 계산하십시오 - Android/Java

boolean currentFolderFound = false; 
      if (mAllFolderListCursor != null) { 
       final String folderName = mSelectedFolderUri.toString(); 
       if (mAllFolderListCursor.moveToFirst()) { 
        do { 
         final Folder f = mAllFolderListCursor.getModel(); 
         if (!isFolderTypeExcluded(f)) { 
          if (f.folderUri.equals(mRecentFolders)) { 
           Toast.makeText(getApplicationContext(), "MATCH FOUND", 
              Toast.LENGTH_LONG).show(); 
          } 
         } 
        } while (!currentFolderFound && mAllFolderListCursor.moveToNext()); 
       } 
} 

내가 선을 코딩 한 생각 : 다음과 같이

나의 현재 코드는 (f.folderUri.equals(mRecentFolders)) { 경우 잘못 - 그리고 나는 이것이 내가 찾고 있어요 결과를 제공하기 위해 개선 될 수 있는지 궁금하네요. 객체가 실제로 동일한 경우 사전에

감사합니다,

크리스토퍼

+0

당신이 거기서 비교할 수있는 것들에 따라 작동 할지도 모르는'if (mRecentFolders.contains (f.folderUri)) '와 같은 것을 원할 것입니다. – zapl

답변

0

True를 반환 동일하지만 경우에 그들은하지 않습니다. 대신 compareTo 메소드를 사용하여 간단한 문자열 비교를 사용해야합니다.

String f1 = folder1.folderUri.toString(); 
String f2 = folder2.folderUri.toString(); 
if (f1.compareTo(f2) == 0) { // Do what needs to be done} 
+0

감사! 이 모양이 맞습니까? http://pastebin.com/mr4zv4gw –

+0

mRecentFolders가 Uri이면 작동합니다. –

+0

실제로는 RecentFolderList입니다 : private final RecentFolderList mRecentFolders; –

관련 문제