2017-06-23 3 views
0

私はアプリを開発しましたが、私のs7や他のデバイスでうまくいきましたが、4.4のkitkatを実行していた古いものでテストしました。 、それは動作しません。アンドロイドコンスタントステートは4.4で動作しませんKitKat

この私が使用しているコードの一部です:

for (Button btn : selectorArrayList) { 

     final Button button = btn; 

     btn.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       /* 

        Check if button color is white or red 
        if white, turn red and activate the 
        selector (category) and if it's red 
        turn white and deactivate the selector 
        category) 

       */ 

       // I've set the background in the XML Layout as R.color.white 

       Drawable pd = (Drawable) button.getBackground(); 

       if (pd.getConstantState().equals(ContextCompat.getDrawable(getContext(), R.color.white).getConstantState())) { 

       ... 

をOSの新しいバージョンでこの非常時点でそれは状態が同じであることを決定、および4.4に(他に試したことがありませんバージョン)はありません。

私はここで何か間違っているのですか?ありがとうございました。

+1

はそれが仕事はこのようにそれを比較するん白色 –

+0

を取得するためにColorDrawableを使用しようとします。if((pd.getColor()&0xFFFFFFの)==は0xFFFFFF)、あなたを行いますそれは他の方法で動作しない理由を知っている? – DomeWTF

+1

ContextCompat.getDrawableメソッドでカラーresを渡します。古いバージョンでは正しく処理できない可能性があります。 –

答えて

0

動作するはずです、これを試してみてください:

if (pd.getConstantState().equals(new ColorDrawable(R.color.white).getConstantState())) 
関連する問題