我想創建一個包含RadioGroup
的自定義View
。在RadioGroup
內部,我想要設置RadioButtons
,以便第一個RadioButton
位於左上方,第二個位於下方,第一個位於右側第三位,下方位於第四位。換句話說,我想創建一個組,其中的單選按鈕排列在一個正方形中。我認爲如果我將組的方向設置爲垂直,那麼所有的單選按鈕都將處於一條直線上。另一方面,如果我將方向設置爲水平方向,那麼再次,這些單選按鈕將全部位於一條直線上,並呈水平狀態。有沒有辦法做我想做的事情,還是我被迫設置了兩個單獨的RadioGroups
,都是水平定位?以編程方式設置RadioGroup
回答
嘗試處理RadioButtons
而不使用RadioGroup
。
接通個人RadioButtons
並將其保存在ArrayList<RadioButton>
中。
List<RadioButton> radioButtons = new ArrayList<RadioButton>();
radioButtons.add((RadioButton)findViewById(R.id.button1));
radioButtons.add((RadioButton)findViewById(R.id.button2));
radioButtons.add((RadioButton)findViewById(R.id.button3));
etc.
每個RadioButton
設置一個OnCheckedChangeListener
。
for (RadioButton button : radioButtons){
button.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) processRadioButtonClick(buttonView);
}
});
}
然後創建一個方法來取消選中未選中的RadioButtons
。
private void processRadioButtonClick(CompoundButton buttonView){
for (RadioButton button : radioButtons){
if (button != buttonView) button.setChecked(false);
}
}
使用這種方法,RadioButtons
可以位於XML佈局的任何位置。
真棒回答馬特,你能解釋如何獲得選定單選按鈕的ID,我試過但我失敗了。等待您的寶貴答案。謝謝。 – 2017-05-26 06:55:31
您應該從RadioGroup繼承並覆蓋onLayout()方法。
謝謝!你有沒有一個例子,說明我想要做的重寫會是什麼樣子? – LuxuryMode 2011-06-13 15:19:39
你可以想出如何從Roman Nurik的儀表板視圖實現onLayout:https://gist.github.com/882650 – woodshy 2011-06-13 15:23:24
- 1. 以編程方式設置iPhone設置
- 2. 如何以編程方式將文本設置爲RadioGroup內部的RadioButton?
- 3. 以編程方式配置IPhone設置
- 4. 以編程方式設置UIScrollView方向
- 5. trigger.io以編程方式設置方向
- 6. 以編程方式設置Android樣式
- 7. 以編程方式設置Eclipse設置編輯器位置
- 8. 以編程方式設置android:animateLayoutChanges
- 9. 以編程方式設置ViewFlipper體重
- 10. 以編程方式設置插座UIBarButtonItem
- 11. 如何以編程方式設置passwordToggleEnabled
- 12. Jqgrid - 以編程方式設置textarea
- 13. 以編程方式設置PopUpMenuButton的值?
- 14. 以編程方式設置android xml
- 15. 以編程方式設置maxRequestLength
- 16. 以編程方式設置ImageView SRC Android
- 17. 以編程方式設置LinearLayout的minHeight
- 18. 以編程方式修改Django設置
- 19. Blackberry - 以編程方式設置鬧鐘?
- 20. 以編程方式設置LayoutParams.BELOW
- 21. 以編程方式設置ICQ狀態
- 22. 以編程方式設置/激活Segue
- 23. 如何以編程方式設置masterpage?
- 24. 以編程方式刪除Web.config設置
- 25. 更改IE設置以編程方式
- 26. ASP.Net以編程方式設置Membership.Provider
- 27. 以編程方式設置AWS區域
- 28. ASP.NET MVC6:以編程方式設置webroot
- 29. 以編程方式設置ImageButton圖像
- 30. 以編程方式設置RGB
您可以使用RelativeLayout而不是LinearLayout – Pratik 2011-06-13 14:53:52
@Pratik會有幫助嗎?這將幫助我建立一個相對於別的東西的組,但是相對於彼此的按鈕又如何呢? – LuxuryMode 2011-06-13 15:03:37