2016-08-08 19 views
1

Ich fragte mich, ob es einen Weg gab, um die Hintergrundfarbe eines Edittext-Objekts durch Klicken auf eine schwimmende Aktion Schaltfläche ändern. Jetzt brauche ich keinen Code zum Einrichten von Farben oder irgendwelcher Art, sondern nur den Teil, in dem die Farbe von der schwebenden Aktionsschaltfläche gespeichert und der Hintergrundfarbe eines Edittext-Objekts zugewiesen wird.Holen Sie sich Farbe von Floating-Action-Taste und verwenden Sie es auf Edittext ändern Hintergrundfarbe

ich die Lösung von diesem Link versucht: How to get background color of button. On click action depends on background color

Der Link oben nur für eine reguläre Taste funktioniert, aber Aktionstaste für floating erhalte ich einen Fehler, der lautet:

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

Gibt es eine Möglichkeit für mich, Color Drawable in einen FAB umzuwandeln, um das zu tun, was ich oben zu tun versuche?

Hier ist, was ich versuchte:

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); 

Aber dies scheint nicht möglich zu arbeiten darauf zurückzuführen, wie die FAB gezogen wird, im Gegensatz zu einem normalen Knopf, der ein Quadrat ist und keine abgerundeten Ecken. Also habe ich mich gefragt, ob es eine Möglichkeit gibt, den Code zu bearbeiten, den ich bereitgestellt habe, damit er wie erwartet funktioniert?

Jede Hilfe wäre willkommen.

Edit: Ich muss erwähnen, dass ich es auf api 11 und höher arbeiten muss.

+0

'getContentBackground' sollte ein Zeichen ohne den Schatten zurückgeben. So heißt es zumindest in der Dokumentation –

+0

Es scheint keine Methode namens getContentBackground für eine frei bewegliche Aktionsschaltfläche zu geben. Wie würde ich es nennen? –

+0

Verwenden Sie diese Floating-Action-Button-Klasse nicht? https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.html –

Antwort

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

Das würde funktionieren, aber ich muss erwähnen, dass ich es brauche, um auf API Level 11 und höher zu arbeiten, und das funktioniert nur auf API 16+. Ich werde die Frage aktualisieren, aber danke für die Bereitstellung des Beispiels –

Verwandte Themen