2016-11-04 31 views
1

任何人都可以幫我嗎?我被困在這件事上一週左右。我想設置一個按鈕來做幾件事情。例如:當我按下按鈕一次 - b1.setBackgroundResource(R.drawable.a),當我按兩次 - b1.setBackgroundResource(R.drawable.b),當按下第三 - b1.setBackgroundResource(R.drawable.c)等等。有可能做到這一點?很感謝!Android:設置一個按鈕做幾件事

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Button b1 = (Button) findViewById(R.id.button); 

    b1.setOnClickListener(
      new Button.OnClickListener() { 
       public void onClick(View v) { 

       } 
      } 
    ); 
} 

回答

1

定義了一個int計數器。在onClick遞增,並以此爲基礎進行任何你想要的價值

0

創建一個全局變量

private int index = 0; 

然後在你的代碼做

b1.setOnClickListener(
     new Button.OnClickListener() { 
      public void onClick(View v) { 

       switch (index) { 
        case 0: 
         firstFunction(); 
         break; 

        case 1: 
         secondFunction(); 
         break; 
       } 

       // Advance your counter and extract the % 
       index++; 
       index = index % numOfDifferentFunctions; 
      } 
     } 
); 
1

是有可能 使用按鈕屬性稱爲setTag和getTag。它的工作相同標誌

實施例:

 b1.setTag("1"); 
     b1.setOnClickListener(
     new Button.OnClickListener() { 
      public void onClick(View v) { 
      if b1.getTag().equals("1"){ 
      b1.setTag("2") 

      } 
      else if(b1.getTag().equals("2")) {} 
      } 
     } 
);