2012-08-11 32 views
0

晚上好,按鍵與狀態的Android

我問自己下面的頭遊:

我想創建一個收藏夾按鈕有以下兩種狀態:

1狀態:「加入到收藏夾「

第二狀態(在OnClick事件):‘從收藏夾刪除’

但我也希望能夠回到第二狀態:」加入收藏s「由第二個OnClick事件等..

有沒有人有一個簡單的OnClickListener的解決方案,它似乎是不可能的。

我終於解決了我的問題,使用自定義複選框!!是使用最喜歡的東西,因爲你可以得到你的drawable的狀態的最佳方式!

這樣的:

favoris_button = (CheckBox) findViewById(R.id.star); 

      favoris_button.setOnClickListener(new OnClickListener() { 

       public void onClick(View v) { 
        if (((CheckBox) v).isChecked()) { 
         favoris_button.setText("Supprimer des categories"); 
        } 
        else 
         favoris_button.setText("Ajouter aux favoris"); 
       } 
      }); 

回答

0

運行該代碼的監聽器裏或包裝的功能周圍,並將它傳遞布爾並調用它,當您需要。啓動,重置或每當你想改變狀態。如果按鈕被點擊,您需要翻轉狀態。

private Boolean check; 
favoris_button = (Button) findViewById(R.id.promotion_favoris);  

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

      if (check == true) 
      { 
       favoris_button.setBackgroundColor(R.drawable.btn_orange9); 
       favoris_button.setText("Supprimer des favoris"); 
      } 
      else 
      { 
       favoris_button.setBackgroundColor(R.drawable.btn_red9); 
       favoris_button.setText("Ajouter aux favoris"); 
      } 
      check ^= true; 

       } 
      }); 
+0

很抱歉,但它不工作.. – eento 2012-08-12 00:14:24

+0

我看不出什麼毛病,但我沒有ADK運行的檢查。確保你的聽衆正在工作。嘗試將檢查分配放在if語句中而不是xor中。 – 2012-08-12 00:20:13

+0

問題是檢查1個週期後總是如此。 – eento 2012-08-12 00:22:03