2012-04-21 2 views
0

enter image description here 가로형 관리자에서 이벤트를 표시하려고합니다. 여러 이벤트가 있다고 말합니다. 이제는 10 개의 이벤트가 표시되고 5 개의 가로 관리자를 표시하는 두 개의 이벤트가 표시됩니다. 나머지 10 개 이벤트. 한 행에 하나의 이벤트를 표시하려면 아래 스 니펫을 사용하십시오. 아래 스 니펫을 편집하여 한 행에 두 개의 이벤트를 얻는 방법은 여기 이벤트가 labelfield에 추가됩니다.가로 관리자를 나누는 방법

VerticalFieldManager vfm = new VerticalFieldManager(); 
     int allDayVectorSize = allDayVector.size(); 
     horizontalFieldManager_isAllDay = new HorizontalFieldManager[allDayVectorSize]; 
     allDayLabel = new LabelField[allDayVectorSize]; 
     row_height = 90; 
     int j = 0; 
     int row_count = 0; 

     if (allDayVectorSize != 0) { 
      for (int i = 0; i < allDayVectorSize; i++) { 
       final String allEvent = (String) allDayVector.elementAt(i); 
       horizontalFieldManager_isAllDay[row_count] = new HorizontalFieldManager(
         Manager.FOCUSABLE | Manager.HORIZONTAL_SCROLL) { 

        protected boolean navigationClick(int status, int time) { 
         Field field = getFieldWithFocus(); 

         Vector data = getData(listEvent); 

         if (allEvent != null && allEvent != "") { 
          System.out.println("Currentdata in if" + allEvent); 
          UiApplication.getUiApplication().pushScreen(
            new EventScreen(data, allEvent, "")); 
         } 
         return super.navigationClick(status, time); 
        } 

        protected boolean keyChar(char key, int status, int time) { 
         Field field = getFieldWithFocus(); 

         return super.keyChar(key, status, time); 
        } 

        protected void sublayout(int maxWidth, int maxHeight) { 
         int displayWidth = Display.getWidth(); 
         int displayHeight = 30; 
         super.sublayout(displayWidth, displayHeight); 
         setExtent(displayWidth, displayHeight); 
        } 
       }; 
       horizontalFieldManager_isAllDay[row_count].setPadding(2, 2, 2, 
         2); 
       allDayLabel[row_count] = new LabelField(allEvent, 
         LabelField.FOCUSABLE) { 

        protected void layout(int maxWidth, int maxHeight) { 

         int displayWidth = (int) (Display.getWidth()/2); 
         int displayHeight = maxHeight; 

         super.layout(displayWidth, displayHeight); 
         setExtent(displayWidth, displayHeight); 
        } 

       }; 

       // allDayLabel[row_count].setPadding(5, 0, 0, 2); 
       final ImageButtonField alarmBitmapField2 = new ImageButtonField(
         "", Field.FOCUSABLE, "ringtone.png", "ringtone.png", 
         0x9cbe95); 
       horizontalFieldManager_isAllDay[row_count] 
         .add(alarmBitmapField2); 
       horizontalFieldManager_isAllDay[row_count] 
         .add(allDayLabel[row_count]); 
       vfm.add(horizontalFieldManager_isAllDay[row_count]); 
       vfm.add(new SeparatorField()); 
      } 
     } 
+0

당신은 스크린 샷으로 제공 할 수 있습니까? – alishaik786

+0

내 ui는 네이티브 캘린더 UI와 동일합니다. 여기에 이벤트가 나열됩니다. 한 개의 행에 두 개의 레이블을 표시하고 10 개의 레이블이있는 경우 5 개의 행을 만들어야합니다. @ alishaik786 –

+0

레이아웃의 스크린 샷 또는 스케치를 첨부합니다. 필요. – Rupak

답변

0
VerticalFieldManager vfm = new VerticalFieldManager(); 
     int allDayVectorSize = allDayVector.size(); 
     int hfmSize=(allDayVectorSize %2 ==0)allDayVectorSize/2:allDayVectorSize +1; 
     horizontalFieldManager_isAllDay = new HorizontalFieldManager[hfmSize]; 
     allDayLabel = new LabelField[allDayVectorSize]; 
     row_height = 90; 
     int j = 0; 

     if (allDayVectorSize != 0) { 
      for (int i = 0; i < hfmSize; i++) { 

       horizontalFieldManager_isAllDay[i] = new HorizontalFieldManager(
         Manager.FOCUSABLE | Manager.HORIZONTAL_SCROLL|Manager.USE_ALL_WIDTH) { 

        protected boolean navigationClick(int status, int time) { 
         Field field = getFieldWithFocus(); 

         Vector data = getData(listEvent); 

         if (allEvent != null && allEvent != "") { 
          System.out.println("Currentdata in if" + allEvent); 
          UiApplication.getUiApplication().pushScreen(
            new EventScreen(data, allEvent, "")); 
         } 
         return super.navigationClick(status, time); 
        } 

        protected boolean keyChar(char key, int status, int time) { 
         Field field = getFieldWithFocus(); 

         return super.keyChar(key, status, time); 
        } 

        protected void sublayout(int maxWidth, int maxHeight) { 
         int displayWidth = Display.getWidth(); 
         int displayHeight = 30; 
         super.sublayout(displayWidth, displayHeight); 
         setExtent(displayWidth, displayHeight); 
        } 
       }; 
       horizontalFieldManager_isAllDay[i].setPadding(2, 2, 2, 
         2); 
       String allEvent = (String) allDayVector.elementAt(i*2); 
       allDayLabel[i*2] = new LabelField(allEvent, 
         LabelField.FOCUSABLE) { 

        protected void layout(int maxWidth, int maxHeight) { 

         int displayWidth = (int) (Display.getWidth()/2); 
         int displayHeight = maxHeight; 

         super.layout(displayWidth, displayHeight); 
         setExtent(displayWidth, displayHeight); 
        } 

       }; 



       // allDayLabel[row_count].setPadding(5, 0, 0, 2); 
       final ImageButtonField alarmBitmapField2 = new ImageButtonField(
         "", Field.FOCUSABLE, "ringtone.png", "ringtone.png", 
         0x9cbe95); 
       horizontalFieldManager_isAllDay[i] 
         .add(alarmBitmapField2); 
       horizontalFieldManager_isAllDay[i] 
         .add(allDayLabel[i*2]); 
       if(i*2+1<allDayVectorSize) 
       { 
         allEvent = (String) allDayVector.elementAt(i*2+1); 
         allDayLabel[i*2] = new LabelField(allEvent, 
         LabelField.FOCUSABLE) { 

           protected void layout(int maxWidth, int maxHeight) { 

            int displayWidth = (int) (Display.getWidth()/2); 
            int displayHeight = maxHeight; 

            super.layout(displayWidth, displayHeight); 
            setExtent(displayWidth, displayHeight); 
          } 

         }; 

         horizontalFieldManager_isAllDay[i] 
         .add(allDayLabel[i*2+1]); 
        } 
       vfm.add(horizontalFieldManager_isAllDay[row_count]); 
       vfm.add(new SeparatorField()); 
      } 
     } 
관련 문제