Ich verstehe, dass Sie das Kontrollkästchen mit Ihrem eigenen Stil erstellen möchten. Sie können dies mit ein paar XML-Definitionen erreichen. Überprüfen Sie den Code, den ich in einer App bin mit:
Zunächst definieren Sie die Checkbox:
<CheckBox
android:id="@+id/btn_team_home"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_weight="0.4"
android:background="@drawable/selector_match_team"
android:button="@null"
android:ellipsize="end"
android:gravity="center"
android:maxLines="2"
android:minLines="2"
android:textColor="@color/selector_btn_matches_text"/>
Das wichtigste Attribut ist hier „android: Hintergrund“
Der Hintergrund Attribut einen Selektor enthält, der angibt, wie die Ansicht auf verschiedene Ereignisse reagiert. Sie können den Code für das res/drawable/selector_match_team unten sehen. Vergessen Sie auch nicht, Android zu setzen: button = "@ null". Andere Attribute in meiner Checkbox-Definition sind für Ihren Fall nicht wichtig.
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_checked="true">
<shape android:shape="rectangle">
<corners android:radius="@dimen/btn_match_radius"/>
<!--<stroke-->
<!--android:width="1dip"-->
<!--android:color="@color/match_picker_match_border_checked"/>-->
<gradient
android:endColor="@color/match_picker_match_bg_checked"
android:startColor="@color/match_picker_match_bg_checked"/>
</shape>
</item>
<item
android:state_checked="false">
<shape android:shape="rectangle">
<corners
android:radius="@dimen/btn_match_radius"/>
<!--<stroke-->
<!--android:width="1dip"-->
<!--android:color="@color/match_picker_match_border_unchecked"/>-->
<gradient
android:endColor="@color/match_picker_match_bg_unchecked"
android:startColor="@color/match_picker_match_bg_unchecked"/>
</shape>
</item>
Hier können Sie sehen, dass das erste Element ein Hintergrund für den Zustand „geprüft“. Es enthält die Rechteckform mit abgerundeten Ecken und Hintergrundfarbe (Gradientenattribut). In Ihrem Fall sollte der kommentierte "Strich" gelten, da Sie den Rahmen um Ihre Schaltflächen haben möchten. Die Farben und Abmessungen sind nicht wichtig, daher gebe ich sie hier nicht an.
Da Ihre Basisansicht bereits ein Kontrollkästchen ist und Sie Ihren eigenen Selektor implementiert haben, müssen Sie nichts manuell programmieren, um die Hintergrund-/Prüfstatus zu verarbeiten.
so wollen Sie Chip wie Textviews. bedeutet verschiedene Texte, die in eine Rechteckbox mit geschlossenem Zeichen oder negativem Zeichen verpackt sind. ? Hab ich recht ? –
Ja @Ragu Swaminathan –
Hat die folgende Antwort für Sie funktioniert? –