2016-08-08 4 views
1

フローティングアクションボタンをクリックして、エディットテキストオブジェクトの背景色を変更する方法があるかどうかは疑問でした。今では、色を設定するコードや並べ替えのコードは必要ありません。フローティングアクションボタンから色を保存し、それをedittextオブジェクトの背景色に割り当てる部分だけです。フローティングアクションボタンから色を取得し、edittextの背景色を変更するために使用します。

私は、このリンクから解決策を試してみました:のみ上記 How to get background color of button. On click action depends on background color

リンクは、通常のボタンのために動作しますが、浮動アクションボタンのために私は、読み込みエラーを取得する:

android.support.design.widget.ShadowDrawableWrapper cannot be cast to android.graphics.drawable.ColorDrawable 

ありますカラードローラーブルをFABにキャストして私が上でやろうとしていることをやり遂げる方法は?

FloatingActionButton btnTag = new FloatingActionButton(R.id.some_button); 
ColorDrawable someColor = (ColorDrawable) btnTag.getBackground(); 
int colorId = someColor.getColor(); 

//Then set edittext's background color to same color as FAB with id some_button 
EditText et= new EditText(R.id.some_et); 
et.setBackgroundColor(colorId); 

をしかし、これは正方形であり、何の丸みを帯びた角を持っていない通常のボタンとは異なり、原因FABが描かれているどのように、おそらく動作していないよう:

は、ここに私が試したものです。だから私はそれが期待どおりに動作するように私が提供したコードを編集する方法があるのだろうかと思っていたのですか?

ご協力いただければ幸いです。

編集: 私はapi 11以上で動作する必要があると言わざるを得ない。

+0

'getContentBackground'は、影のないドロアブルを返します。少なくともドキュメンテーションの意味は –

+0

浮動アクションボタンのgetContentBackgroundというメソッドはないようです。どのように私はそれを呼び出すだろうか? –

+0

このフローティングアクションボタンクラスを使用していませんか? https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.html –

答えて

0
FloatingActionButton btnTag = new FloatingActionButton(R.id.some_button); 
Drawable background = btnTag.getContentBackground(); 

EditText et= new EditText(R.id.some_et); 
et.setBackground(background); 
+0

これはうまくいくと思いますが、私はAPIレベル11以上で動作する必要があると言いましたが、これはapi 16+でのみ動作します。私は質問を更新しますが、例を提供してくれてありがとう –

関連する問題