2014-01-05 223 views
1

根據我的設計我有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 

當用戶點擊一個按鈕並點擊空盒中的任何一個,所述框獲取填充有例如相應的雙值I將在每個步驟解釋這一點:

  1. 如果用戶點擊25(紅色按鈕)並在任意一個框上點擊,該框會在背景中填充25個文本和紅色。
  2. 如果用戶再次點擊相同的框,值將增加到50(25 + 25),這裏我需要背景顏色爲黑色,50代表黑色
  3. 現在,如果用戶點擊5(棕色按鈕),然後在填充黑色的盒子上點擊,數值將增加到55(50 + 5),但顏色只能爲黑色。
  4. 現在,如果用戶開始在同一個方塊上敲擊,則該值將增加爲+5,直到值達到75時,背景顏色將變爲黑色,正好從75開始,它必須變爲藍色
  5. 如果if用戶點擊第二個框,它必須填充最後點擊的按鈕的顏色。

現在我只能夠根據點擊按鈕的盒子增加值和填充HT顏色,我想知道如何填寫的顏色,當值獲得增加

如何做到這一點?

回答

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; 
       } 
      } 
     } 
解決方案
0

我在這裏假設你只是尋找alogical提示。

維護一個類變量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 
    } 


}