마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

ArrayList<HashMap> iconArrayList <--- 사이즈값을 어떻게 구할까요?

–3 추천
ArrayList<HashMap> iconArrayList;

 

맨첨에 변수로 선언해놓고

 

화면에 뿌리려고 하는데

 

for문 돌리면서 iconArrayList.size() 값으로 화면에 뿌려주는데

 

3개가 나와야되는데 2개밖에 안나와서 답답합니다ㅠ

 

 iconArrayList.size() 값은 어떻게 구하는건가요?

 

 private void setBanners() {
  Log2.debug("myIconArrayList size:"+iconArrayList.size());
  startFlipping(false);
  String univname;
     String thumbnail;
     String univcode;
     layoutNavi.removeAllViews();
     flipper.removeAllViews();
     
     for(int i=0; i < iconArrayList.size();i++){
   HashMap hm = iconArrayList.get(i);
   Set set = hm.keySet();
         Iterator it=set.iterator();
        
         while(it.hasNext()){
          String key = it.next().toString();
             String value= hm.get(key).toString();

             Log2.debug("Key :"+key);
             Log2.debug("value :"+value);
         }
         //suggestbanner 셋팅
         // 추천 배너 아이콘 셋팅
         // 기존 배너 아이콘들이 존재하지 않으면 iconArrayList에 있는 데이터로 sugBanIconArrayList을 만든다
            if(sugBanIconArrayList == null){
             if(hm.get("suggestbanner") != null){
              sugBanIconArrayList = util.getJSONArray(hm.get("suggestbanner").toString());
             }else if(hm.get("defregionbanner") != null){
                 sugBanIconArrayList = util.getJSONArray(hm.get("defregionbanner").toString());
                }
            }else{
             if(! (sugBanIconArrayList.size() > 0) ){
              if(hm.get("suggestbanner") != null){
               sugBanIconArrayList = util.getJSONArray(hm.get("suggestbanner").toString());
              }else if(hm.get("defregionbanner") != null){
                     sugBanIconArrayList = util.getJSONArray(hm.get("defregionbanner").toString());
                    }
             }
            }
            if(defBanIconArrayList != null){
             if(hm.get("suggestbanner") != null){
                 if( sugBanIconArrayList.size() > 0 ){
                     int ranIndex = (int)(Math.random() * sugBanIconArrayList.size() );
                     HashMap sugRecHm = sugBanIconArrayList.get(ranIndex);
                     setSugBanIcon(sugRecHm);
                     sugBanIconArrayList.remove(ranIndex);
                    }
             }
            }else{
             defBanIconArrayList = new ArrayList<HashMap>();
            }
           
           
            //defBanIconArrayList 셋팅
            if(defBanIconArrayList == null){
             if(hm.get("defregionbanner") != null){
              defBanIconArrayList = util.getJSONArray(hm.get("defregionbanner").toString());
             }
            }else{
             if(hm.get("defregionbanner") != null){
              defBanIconArrayList = util.getJSONArray(hm.get("defregionbanner").toString());
             }
            }
            if(! (defBanIconArrayList.size() > 0) ){
             if(hm.get("defregionbanner") != null){
              defBanIconArrayList = util.getJSONArray(hm.get("defregionbanner").toString());
             }
            }
                    
            if( defBanIconArrayList.size() > 0 ){
             int ranIndex = (int)(Math.random() * defBanIconArrayList.size() );
             HashMap sugRecHm = defBanIconArrayList.get(ranIndex);
             setSugBanIcon(sugRecHm);
             defBanIconArrayList.remove(ranIndex);
            }
           
            //regionbanner 셋팅
            if(regBanIconArrayList == null){
             if(hm.get("regionbanner") != null){
              regBanIconArrayList = util.getJSONArray(hm.get("regionbanner").toString());
             }else if(hm.get("defregionbanner") != null){
                 regBanIconArrayList = util.getJSONArray(hm.get("defregionbanner").toString());
                }
            }else{
             if(! (regBanIconArrayList.size() > 0) ){
              if(hm.get("regionbanner") != null){
               regBanIconArrayList = util.getJSONArray(hm.get("regionbanner").toString());
              }else if(hm.get("defregionbanner") != null){
                     regBanIconArrayList = util.getJSONArray(hm.get("defregionbanner").toString());
                    }
             }
            }
            if(regBanIconArrayList != null){
                Log2.debug("regBanIconArrayList:" + regBanIconArrayList.size());
               
                if( regBanIconArrayList.size() > 0 ){
                 int ranIndex = (int)(Math.random() * regBanIconArrayList.size() );
                 HashMap sugRecHm = regBanIconArrayList.get(ranIndex);
                 setSugBanIcon(sugRecHm);
                 regBanIconArrayList.remove(ranIndex);
                }
            }
     }
     startFlipping(true);
 }

 

위 소스 중 iconArrayList.size() <---- 일단 값은 1로 나오는데

 

제가 원하는 값은 size 값이 2여야 배열로 끊어져서 3개가 나오는거거든요 ㅠㅠ
퐝대 (600 포인트) 님이 2013년 6월 13일 질문
퐝대님이 2013년 6월 13일 수정
일단 iconArrayList.size() 값을 logcat 등으로 확인해보시고, for문을 어떻게 쓰셨는지도 올려주시면 정확한 답을 얻으실 수 있을겁니다.
ㅠㅠㅠ 해당 소스도 올렸는데 일단 size 값을 로그로 찍어보니
1이 들어가있더라구요.. size값이 2여야 제가 원하는 화면이 나올텐데ㅠㅠ
iconArrayList에 add하는 부분은 제대로 동작하나요?
하...... 제가 안드로이드 시작한지 2개월 조금 넘어서
잘 모르겠어요 ㅠㅠㅠㅠㅠ

1개의 답변

0 추천

iconArrayList.size() 로 구하는겁니다.

3개 삽입했는데 최종화면에 2개밖에 안나온다면

1. 삽입을 2개밖에 안했다.

2. 3개 삽입하고 1개 remove했다.

3. for문 조건이 잘못됐다 <--- 이거일듯?

4. 화면 뿌리는걸 잘못했다..

 

음....

ignitepaper (1,720 포인트) 님이 2013년 6월 13일 답변
혹시 iconArrayList에 값을 넣는건
서버에서 불러오는건가요?
질문에 추가하신 소스봤는데요. iconArrayList에 값을 넣는건 추가하신 소스에 없으니 어떤 방식으로 넣는지 제가 알 수 없고요..
setSugBanIcon할때마다 데이타를 view에 넣는것 같은데 arraylist의 hashmap에 데이타가 없는거 아니에요?

arraylist자체가 2개이상되어야 한다면 add하시는 부분을 봐야하는거고요..
음......... 이걸 어떻게 설명해드려야할지.....ㅠㅠ
사이즈값을 찍었는데 1이 나오는거면
배열값이 0, 1 이렇게 되서 화면에 2개가 나오는건데
하.. 이거 제가 완전 초짜라서 큰일이네요
size가 1이면 배열은 0하나만 있는겁니다.
size가 2면 0,1이고요
아하.... 그럼 값을 못불러온다는 것과 같은건가요?
근데 사이즈값이 1이고 배열에 0하나만 있는데
왜 화면에는 2개가 뜰까요.... 이것도 의문이네요 ㅠㅠ;
setSugBanIcon 함수 코드를 못봐서 추측이지만 해당 함수가 배너 그리는것 같은데.. array에 있는  hasmap에 배너가3개까지 등록해놓은것 같은데 거기에 2개 있는거 아니에요? 브레이크포인트 디버깅하면 5분이면 다 파악될듯한데요.
ㅠㅠㅠㅠㅠㅠㅠㅠ 소스가 이래저래 너무 복잡해서........
설명도 제대로 못해드리는거 같아 죄송하네요ㅠㅠㅠㅠㅠ
배너 등록은 따로 할 수 있는 건가요?
당장 저 문제보다 기본적인 자료구조등을 공부하시는게 더 급해보여요.
hashmap,jason,arraylist 이런거 인터넷 검색해서 조금만 읽어봐도 내용 엄청 잘 나와있어요..
...