ฉันกำลังพยายามลบล้างToggleButton
รูปลักษณ์เริ่มต้น นี่คือ XML ที่กำหนดToggleButton
:
<ToggleButton android:id="@+id/FollowAndCenterButton"
android:layout_width="30px"
android:layout_height="30px"
android:textOn="" android:textOff="" android:layout_alignParentLeft="true"
android:layout_marginLeft="5px"
android:layout_marginTop="5px" android:background="@drawable/locate_me"/>
ตอนนี้เรามีไอคอน 30 x 30 สองไอคอนที่เราต้องการใช้สำหรับสถานะที่คลิก / ไม่คลิก ตอนนี้เรามีรหัสที่เปลี่ยนไอคอนพื้นหลังโดยทางโปรแกรมขึ้นอยู่กับสถานะ:
centeredOnLocation.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (centeredOnLocation.isChecked()) {
centeredOnLocation.setBackgroundDrawable(getResources().getDrawable(R.drawable.locate_me_on));
} else {
centeredOnLocation.setBackgroundDrawable(getResources().getDrawable(R.drawable.locate_me));
}
}
});
เห็นได้ชัดว่าฉันกำลังมองหาวิธีที่ดีกว่านี้ในการทำเช่นนี้ ฉันพยายามสร้างตัวเลือกสำหรับภาพพื้นหลังซึ่งจะสลับระหว่างสถานะโดยอัตโนมัติ:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/locate_me" /> <!-- default -->
<item android:state_checked="true"
android:drawable="@drawable/locate_me_on" /> <!-- pressed -->
<item android:state_checked="false"
android:drawable="@drawable/locate_me" /> <!-- unchecked -->
แต่ไม่ได้ผล อ่านToggleButton
API ( http://developer.android.com/reference/android/widget/ToggleButton.html ) ดูเหมือนว่าแอตทริบิวต์ xml ที่สืบทอดมามีเพียง
XML Attributes
Attribute Name Related Method Description
android:disabledAlpha The alpha to apply to the indicator when disabled.
android:textOff The text for the button when it is not checked.
android:textOn The text for the button when it is checked.
ดูเหมือนจะไม่มีแอตทริบิวต์ android: state_checked แม้ว่าคลาสจะมีเมธอดก็ตาม isChecked()
และsetChecked()
.
มีวิธีทำตามที่ฉันต้องการใน XML หรือไม่หรือฉันติดอยู่กับวิธีแก้ปัญหาที่ยุ่งเหยิงของฉัน?
CompoundButton
หมายเหตุถ้าคุณไม่ได้ใช้ข้อความที่ผมคิดว่ามันอาจจะดีกว่าที่จะใช้