在逻辑问题上需要帮助

时间:2014-01-05 07:37:57

标签: android button onclicklistener

根据我的设计,我有6个按钮,上面有两个按钮2个方形布局(就像空盒子一样)

按钮代表每种颜色和一组双值

例如:

5.0   => brown btn
25.0  => red btn
50.0  => black btn
75.0  => blue btn
100.0 => violet btn
200.0 => green btn

当用户点击一个按钮并点击任何一个空框时,该框会填充相应的双值,例如我将在每一步中解释:

  1. 如果用户点击25(红色按钮)并点击任意一个框,该框将在背景中填充25个文本和红色。
  2. 如果用户再次点击同一个框,则该值将增加到50(25 + 25),此处我需要背景颜色为黑色,50表示黑色
  3. 现在,如果用户点击5(棕色按钮)并点击填充黑色的框,则该值将增加到55(50 + 5),但颜色必须仅为黑色。
  4. 现在,如果用户开始点击同一个框,则该值将增加为+5,直到该值达到75,背景颜色为黑色,正好是75,它必须为蓝色
  5. 如果用户点击第二个框,则必须填充最后被点击的按钮颜色。
  6. 现在我只能根据点击的按钮递增值并填充框上的ht颜色,我想知道当值增加时如何填充颜色

    怎么做?

2 个答案:

答案 0 :(得分:0)

我在这里假设你只是在寻找一些神秘的暗示。

维护一个类变量lastVal。最初设置其值为-1。

您可以维护一个包含框值的数组。

每当用户单击某个框时,您将使用lastVal增加数组中的框值。

这是一个简单的类....这不是一个完整的类,只是对我的意思的解释。

public class MyClass{

    int lastVal = -1;
    int boxVal[10];
    View box[10];

    void handleColorClick(int keyVal)
    {
        lastVal = keyVal;

    }


    void handleBoxClick(int index)
    {
       boxVal[index] += lastVal;
       setBoxBackground(index)


    }

    void setBoxBackground(int index)
    {
       //check if the box color is matching any fixed color then set the background here
    }


}

答案 1 :(得分:0)

最后我通过这种方式获得了解决方案

Iterator<Integer> iter = values.iterator();
         int small=0 , bigger=0;
         while (iter.hasNext())
         {
             Integer currElement = iter.next();
             if (z.compareTo(currElement) > -1)
             {
                 small = currElement;
             }
             else
             {
                 bigger = currElement;
             }            
         }

         System.out.println("small "+small);
         System.out.println("biggest "+bigger);

         for(int i=0; i< values.size(); i++)
         {
             if(small == values.get(i))
             {
                if(i == 0)
                 {
                     Log.i("", "brwon");
                     break;
                 }
                 else if(i == 1)
                 {
                     Log.i("", "red");
                     break;
                 }
                 else if(i == 2)
                 {
                     Log.i("", "black");
                     break;
                 }
                 else if(i == 3)
                 {
                     Log.i("", "blue");
                     break;
                 }
                 else if(i == 4)
                 {
                     Log.i("", "violet");
                     break;
                 }
                 else if(i == 5)
                 {
                     Log.i("", "green");
                     break;
                 }
             }
         }