2012-02-15 70 views
5

Tôi đang cố tạo kiểu cho nút radio và vì vậy tôi đã tạo bộ chọn. Mọi thứ hoạt động ngoại trừ hình ảnh nút radio chuẩn vẫn hiển thị. Làm cách nào để xóa hộp kiểm nút radio mặc định. Tôi đã thử gán drawable cho một chuỗi rỗng, nhưng trình biên dịch không thích nó.xóa hộp kiểm nút radio mặc định khi sử dụng công cụ chọn tùy chỉnh

Đây là mã của một trong những tiểu bang chọn của tôi:

<item android:state_checked="true" android:drawable=""> 
    <shape> 
     <gradient 
      android:startColor="#808080" 
      android:centerColor="#2F2F2F" 
      android:endColor="#2F2F2F" 
      android:angle="270" /> 
     <stroke 
      android:width="2dp" 
      android:color="@color/black" /> 
     <corners 
      android:radius="5dp" /> 
    </shape> 
</item> 
+1

Tại sao các bạn cố gắng để loại bỏ các drawable tất cả lại với nhau? Bạn có thể thay thế nó bằng thứ gì đó phù hợp với nhu cầu của bạn không? – Flynn

+0

Tôi muốn các chức năng của một nút radio, nhưng muốn nó trông giống như một nút. Cụ thể là tôi muốn có hai nút cạnh nhau để chuyển đổi nhau. Một trong các nút xuất hiện và nút còn lại. Có một giải pháp tốt hơn so với nơi tôi đang hướng tới? –

+2

Tôi thực sự thấy rằng tôi có thể xóa hộp kiểm mặc định bằng "android: button =" @ null "' –

Trả lời

19

tôi thấy rằng tôi không thể loại bỏ các hộp kiểm radiobutton mặc định trong bộ chọn. Tôi thấy rằng nó có thể được loại bỏ bằng cách gán thuộc tính "button" thành null, theo kiểu hoặc định nghĩa của chính radiobutton.

Dưới đây là ví dụ sử dụng kiểu.

<RadioButton 
    android:id="@+id/myRadioButton" 
    style="@style/RadioButtonStyle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/custom_radio_button"/> 

<style name="RadioButtonStyle" parent="@android:style/Widget.CompoundButton"> 
    <item name="android:background">@drawable/radiobutton_selector</item> 
    <item name="android:button">@null</item> 
</style> 

radiobutton_selector định nghĩa bộ chọn để vẽ nút ở các trạng thái đã chọn khác nhau. Đây là trạng thái kiểm tra:

<item android:state_checked="true"> 
    <shape> 
     <gradient 
      android:startColor="@color/titleButtonCheckedGradientLight" 
      android:centerColor="@color/titleButtonCheckedGradientDark" 
      android:endColor="@color/titleButtonCheckedGradientDark" 
      android:angle="270" /> 
     <stroke 
      android:width="1dp" 
      android:color="@color/titleButtonBorder" /> 
     <corners 
      android:radius="5dp" /> 
    </shape> 
</item> 
+0

mã của bạn dường như không nhận được hàm radioGroup.getCheckedRadioButtonId() ......... – Prativa

+0

câu trả lời hay nhất cho đến nay – Devon

26

Đặt nút giá trị null trong cách bố trí XML

android:button="@null" 
+3

Cảm ơn câu trả lời của bạn. Tôi đã tìm thấy điều này cũng như bạn có thể thấy từ bình luận ngày 15 tháng 2 năm 2012 của tôi trong câu hỏi của tôi. –

Các vấn đề liên quan