Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Blackberry 当我点击星星图像时,星星正在隐藏_Blackberry_Blackberry Eclipse Plugin_Rating - Fatal编程技术网

Blackberry 当我点击星星图像时,星星正在隐藏

Blackberry 当我点击星星图像时,星星正在隐藏,blackberry,blackberry-eclipse-plugin,rating,Blackberry,Blackberry Eclipse Plugin,Rating,我的要求是当我点击位图更改时创建5颗星,当“未点击”位图更改回默认值时创建5颗星。如果未点击星号1,则之后的所有4颗星都不能点击,如果点击星号2,则星号3必须可以点击,星号4-5不能点击,(然后向后)如果选择了所有5颗星,则只有5颗星必须是可点击的,如果5颗星和4颗星未被点击,则3颗星必须是可点击的,2-1颗星不能是可点击的,以此类推 public class Starscreen extends MainScreen { protected static BitmapField Star1 =

我的要求是当我点击位图更改时创建5颗星,当“未点击”位图更改回默认值时创建5颗星。如果未点击星号1,则之后的所有4颗星都不能点击,如果点击星号2,则星号3必须可以点击,星号4-5不能点击,(然后向后)如果选择了所有5颗星,则只有5颗星必须是可点击的,如果5颗星和4颗星未被点击,则3颗星必须是可点击的,2-1颗星不能是可点击的,以此类推

public class Starscreen extends MainScreen
{
protected static BitmapField Star1 = null;
protected static BitmapField Star2 = null;
protected static BitmapField Star4 = null;
protected static BitmapField Star5 = null;
protected static final Bitmap StarClicked = null;
protected static BitmapField Star3 = null;
BitmapField bitmapField1;
private Bitmap StarNotClicked;
public  Starscreen(Secondscreen secondscreen)
{
    setTitle("Star Screen"); 
LabelField RateDeal = new LabelField("Rating: ");
     Mainlayout.add(RateDeal);
        HorizontalFieldManager StarManager=new    HorizontalFieldManager   
        (USE_ALL_WIDTH);
        final Bitmap StarNotClicked = Bitmap.getBitmapResource("Star3.png");
        final Bitmap StarClicked = Bitmap.getBitmapResource("Star4.png");

     Star1 = new BitmapField(StarNotClicked,BitmapField.FOCUSABLE){
         private Object StarClicked;

        protected boolean navigationClick(int status, int time){
         fieldChangeNotify(1);
         Star1.setBitmap((Bitmap) StarClicked);
         Star2.setBitmap(StarNotClicked);
         Star3.setBitmap(StarNotClicked);
         Star4.setBitmap(StarNotClicked);
         Star5.setBitmap(StarNotClicked);
         AmountOfStarsSelected(1);
         return true;
         }
         };
         Star2 = new BitmapField(StarNotClicked,BitmapField.FOCUSABLE){
         private Object StarClicked;

        protected boolean navigationClick(int status, int time){
         fieldChangeNotify(1);
         Star1.setBitmap((Bitmap) StarClicked);
         Star2.setBitmap((Bitmap) StarClicked);
         Star3.setBitmap(StarNotClicked);
         Star4.setBitmap(StarNotClicked);
         Star5.setBitmap(StarNotClicked);
         AmountOfStarsSelected(2);
         return true;
         }
         };
         Star3 = new BitmapField(StarNotClicked,BitmapField.FOCUSABLE){
        // private Object StarClicked;

        protected boolean navigationClick(int status, int time){
         fieldChangeNotify(1);

         Star1.setBitmap((Bitmap) StarClicked);
         Star2.setBitmap((Bitmap) StarClicked);
         Star3.setBitmap((Bitmap) 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);
         Mainlayout.add(StarManager);
         add(Mainlayout);
 }
  }

通过执行上面的代码,我得到了一个错误,它显示了AmountOfStarsSelected()的create方法;但是我不知道我应该在AmountOfStarsSelected()中使用什么条件;请帮助我,我是黑莓的新手

我要说的是,为这个问题单独设置一个类,扩展自
HorizontalFieldManager
。让该类创建5个按钮并进行布局,并包含一个局部状态变量
int-level
。在此类中创建公共
setLevel(int-level)
getLevel()
方法。其中级别是指当前选定的星

setLevel
中输入以下代码:

public void setLevel(int level)
{
    if(Math.abs(this.level - level) != 1)
    {
        return; // this.level refers to your local state. return because there is no change, or the user didn't click 1 up or down.
    }

    if(level == 0)
    {
          Star1.setBitmap(StarClicked);
    }
    else
    {
          Star1.setBitmap(StarNotClicked);
    }

    if(level == 1)
    {
          Star2.setBitmap(StarClicked);
    }
    else
    {
          Star2.setBitmap(StarNotClicked);
    }

    if(level == 2)
    {
          Star3.setBitmap(StarClicked);
    }
    else
    {
          Star3.setBitmap(StarNotClicked);
    }

    if(level == 3)
    {
          Star4.setBitmap(StarClicked);
    }
    else
    {
          Star4.setBitmap(StarNotClicked);
    }

    if(level == 4)
    {
          Star5.setBitmap(StarClicked);
    }
    else
    {
          Star5.setBitmap(StarNotClicked);
    }

    this.level = level;
}
在你的每个STAR中,你应该称之为
setLevel
方法

 Star1 = new BitmapField(StarNotClicked, BitmapField.FOCUSABLE){
      protected boolean navigationClick(int status, int time)
      {
          setLevel(0); // If these fields are the only thing in your horizontal field you can get away with using setLevel(getIndex());
          return true;
      }
 };
请记住,在构造函数中,应该将level设置为-1,然后调用setLevel(0),以便默认情况下可以选择第一个星