2017-03-02 9 views
0

私は、リモートで光をオンまたはオフにするスイッチボタンを実装しています。HTTPリクエストの応答に基づいてスイッチボタンの色を変更します

スイッチボタンを押すたびに、HTTPリクエストがサーバーに送信され、応答が返されます。

要件は次のとおりです。

アプリが応答を待っている間、スイッチボタンが黄色になります。

応答が200 OKの場合、ボタンは緑色に変わります。

応答が拒否されるかタイムアウトになると、ボタンが赤くなります。

私はデフォルトのスイッチボタンを使用しています。それは私が色を動的に変更することを許可せず、私は周りを見ていて、私のアプリに使用できる何かを見つけることができませんでした。

このマルチステートスイッチボタンはどのように実現できますか?

+0

最も簡単な解決策は、SwitchCompatを使用することです。こちらをご覧くださいhttp://stackoverflow.com/questions/26714864/ここhttp://stackoverflow.com/questions/27845595/ –

+0

他に2つ - DrawableCompatまたはColorFilters –

答えて

0

このように色を変更することができます。私はちょうどテストし、それが動作します:

// Assuming ToggleButton with id "toggleButton" 
final ToggleButton toggle = (ToggleButton) findViewById(R.id.togglebutton); 
toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
      if (isChecked) { 
       // The toggle is enabled 
       toggle.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.colorPrimary)); 
      } else { 
       // The toggle is disabled 
       toggle.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.colorAccent)); 
      } 
    } 
}); 

ちょうど例として。それはあなたが意味することですか?もちろん、 "colors.xml"ファイルで独自の色を作ることができます。

関連する問題