2012-04-21 64 views
0

enter image description here我想在hroizontal管理器中顯示事件,我有多個事件說現在我有10個事件,我想要顯示兩個事件ia單行,創建5個水平管理器以顯示休息10個events.I能夠使用下面的代碼片段顯示單行中的一個事件,如何編輯下面的代碼片段以獲得單行中的兩個事件,這裏事件添加到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 2012-04-21 05:34:47

+0

我的用戶界面與原生日曆用戶界面相同,其中列出了事件。我只想在一行中顯示兩個標籤,當我有10個標籤時,則必須創建5行@ alishaik786 – 2012-04-21 05:42:05

+0

附上您的佈局的屏幕截圖或草圖想。 – Rupak 2012-04-21 12:01:45

回答

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