0

こんばんは、

私は自分自身に次のヘッドブレイクを尋ねます:

次の 2 つの状態を持つ [お気に入り] ボタンを作成したいと思います。

最初の状態: 「お気に入りに追加」

2 番目の状態 (OnClick イベント時): 「お気に入りから削除」

しかし、2番目の状態に戻ることもできます.2番目のOnClickイベントなどによる「お気に入りに追加」..

単純な OnClickListener を使用した解決策はありませんか?それは不可能に思えます。

カスタムチェックボックスを使用してようやく問題を解決しました!!ドローアブルの状態を取得できるため、お気に入りのものを使用する最良の方法です!!

そのように:

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");
                }
            });
4

1 に答える 1

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;

                }
            });
于 2012-08-11T23:04:39.967 に答える