0

我的目标是创建一个像在 android 中一样的星域,它们有一个评级星域。我已经完成以下工作:

  • 创造星域 (5)
  • 单击时,位图会发生变化。
  • 当“未单击”位图更改回默认值时。

我的下一步是执行以下操作:如果未单击星号 1,则后面的所有 4 星都不能单击,如果单击星号 2,则星号 3 必须可单击,星号 4-5 不得单击,(然后向后) 如果所有 5 颗星都被选中,则只有 5 颗星必须是可点击的,如果未点击 5 和 4 颗星,则 3 颗星必须是可点击的,2-1 颗星不能是可点击的,以此类推。

我可以为您提供到目前为止我所做的代码片段(检查链接):http: //supportforums.blackberry.com/t5/Java-Development/Rating-Stars-like-in-android/mp/1942559

如果您对如何做我想做的事情有任何想法,请告诉我,谢谢。

4

2 回答 2

0

这篇文章对您根据您的要求在黑莓上评级明星很有用。

http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/800505/800608/How_to_-_Implement_advanced_buttons,_fields,_and_managers.html?nodeid=2406256&vernum=0

于 2012-10-10T08:08:31.843 回答
0
LabelField RateDeal = new LabelField("Rating: ");
    HorizontalFieldManager StarManager=new HorizontalFieldManager(USE_ALL_WIDTH);
    final Bitmap StarNotClicked = Bitmap.getBitmapResource("rating_star.png");
    final Bitmap StarClicked = Bitmap.getBitmapResource("rating_star_focus.png");

    Star1 = new BitmapField(StarNotClicked,BitmapField.FOCUSABLE){
        protected boolean navigationClick(int status, int time){
            fieldChangeNotify(1);
            Star1.setBitmap(StarClicked);
            Star2.setBitmap(StarNotClicked);
            Star3.setBitmap(StarNotClicked);
            Star4.setBitmap(StarNotClicked);
            Star5.setBitmap(StarNotClicked);
            AmountOfStarsSelected(1);
            return true;
        }
    };
    Star2 = new BitmapField(StarNotClicked,BitmapField.FOCUSABLE){
        protected boolean navigationClick(int status, int time){
            fieldChangeNotify(1);
            Star1.setBitmap(StarClicked);
            Star2.setBitmap(StarClicked);
            Star3.setBitmap(StarNotClicked);
            Star4.setBitmap(StarNotClicked);
            Star5.setBitmap(StarNotClicked);
            AmountOfStarsSelected(2);
            return true;
        }
    };
    Star3 = new BitmapField(StarNotClicked,BitmapField.FOCUSABLE){
        protected boolean navigationClick(int status, int time){
            fieldChangeNotify(1);
            Star1.setBitmap(StarClicked);
            Star2.setBitmap(StarClicked);
            Star3.setBitmap(StarClicked);
            Star4.setBitmap(StarNotClicked);
            Star5.setBitmap(StarNotClicked);
            AmountOfStarsSelected(3);
            return true;
        }
    };
    Star4 = new BitmapField(StarNotClicked,BitmapField.FOCUSABLE){
        protected boolean navigationClick(int status, int time){
            fieldChangeNotify(1);
            Star1.setBitmap(StarClicked);
            Star2.setBitmap(StarClicked);
            Star3.setBitmap(StarClicked);
            Star4.setBitmap(StarClicked);
            Star5.setBitmap(StarNotClicked);
            AmountOfStarsSelected(4);
            return true;
        }
    };
    Star5 = new BitmapField(StarNotClicked,BitmapField.FOCUSABLE){
        protected boolean navigationClick(int status, int time){
            fieldChangeNotify(1);
            Star1.setBitmap(StarClicked);
            Star2.setBitmap(StarClicked);
            Star3.setBitmap(StarClicked);
            Star4.setBitmap(StarClicked);
            Star5.setBitmap(StarClicked);
            AmountOfStarsSelected(5);
            return true;
        }
    };
    StarManager.add(Star1);
    StarManager.add(Star2);
    StarManager.add(Star3);
    StarManager.add(Star4);
    StarManager.add(Star5);
        add(StarManager);
于 2012-11-07T11:44:19.790 回答