2012-01-18 41 views
4

我在RadioGroup中以編程方式添加一個問題的多個答案作爲RadioButtons(請參閱下面的代碼和圖像)。如何使重疊文本的RadioButton?

我幾乎實現了它,但不是有一個單選按鈕,其旁邊有一個文本(請參見下圖),我只想要文本和背景。

我可以擺脫單選按鈕嗎?

或者我可以設置我當前的背景作爲單選按鈕(與選中/未選中狀態),並添加一個文本重疊?

RadioGroup answer_container = (RadioGroup) findViewById(R.id.answer_container); 

while (c.isAfterLast() == false) { 

    RadioButton answer = new RadioButton(PCItem.this); 
    answer.setText(c.getString(c.getColumnIndex(DBAdapter.KEY_ANS_TEXT))); 
    answer.setBackgroundResource(R.drawable.btn_ans); 
    answer.setPadding((int)(30 * density), 0, 0, 0); 
    answer.setGravity(Gravity.CENTER_VERTICAL); 
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams((int)(775 * density), (int)(81 * density)); 
    params.setMargins(0, (int)(20*density), 0, 0); 
    answer.setLayoutParams(params); 

    answer_container.addView(answer); 

    c.moveToNext(); 
} 

enter image description here

+0

即使我找到同樣的問題,你能幫助我嗎? – Goofy 2013-08-28 12:21:09

回答

0

好吧,我把它用做

answer.setButtonDrawable(android.R.color.transparent); 

刪除的按鈕,並使用選擇作爲btn_ans:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_checked="false" android:drawable="@drawable/btn_choix_unsel" /> 
<item android:state_checked="true" android:drawable="@drawable/btn_choix_sel" /> 
</selector> 
4

您可以使用radioButton.setButtonDrawable()。您還可以使用StateListDrawable爲每個按鈕狀態(包括checked/unchecked)指定不同的繪圖。

要完全刪除按鈕,你可以簡單地將其設置爲null

<RadioButton 
    android:button="@null" 
    ... 
/> 

注意,通過代碼radioButton.setButtonDrawable(null);不起作用!正確的方法是設置一個空StateListDrawable

radioButton.setButtonDrawable(new StateListDrawable()); 

如果你有更多的項目,您可以創建自定義樣式覆蓋的RadioButton默認屬性:

<style name="CustomRadioButton" parent="@android:style/Widget.CompoundButton.RadioButton"> 
    <item name="android:button">@null</item> 
    <item name="android:paddingLeft">0dp</item> 
</style> 
+0

這將設置單選按鈕。我想刪除它,或使文本重疊。 – jul 2012-01-18 13:31:16

+0

@jul:看看我最後一次編輯,我想是你需要的。 – 2012-01-18 14:00:05

+0

我試圖設置按鈕爲空編程('answer.setButtonDrawable(null)'),但它仍然顯示出來...... – jul 2012-01-18 14:22:07