![](/img/trans.png)
[英]Custom style setDropDownViewResource Android Spinner
[英]Android spinner adapter setDropDownViewResource custom layout with radiobutton
我在對話模式下使用Spinner。 我使用setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)為Spinner設置了SimpleCursorAdapter; 很好
現在,我嘗試通過自定義布局,而不是simple_spinner_dropdown_item,它的效果也很好。
但是有一個但是...它沒有原始的simple_spinner_dropdown_item擁有的單選按鈕。 是否可以在顯示微調器對話框時選擇的自定義spinner_dropdown_item中添加單選按鈕?
它是可能的,但你必須定義一個又一個類spinner.Just看看這個
您還有一個選擇可以滿足您的要求。 那是Alert dialog
只需在Android中通過單選按鈕簽出此Alert Dialog Window,以及如何 在Android 中創建自定義和下拉類型對話框和Dialog
好吧,我找到了解決方案。 ListView(微調器對話框中的內容)將檢查您的View是否可檢查並調用setChecked。 由於android.R.layout.simple_spinner_dropdown_item是可檢查的,因此可以正常工作。 因此,對於我的自定義列表項,我創建了實現Checkable的LinearLayout
public class CheckableLinearLayout extends LinearLayout implements Checkable
{
private boolean _isChecked = false;
public CheckableLinearLayout(Context context)
{
super(context);
}
public CheckableLinearLayout(Context context, AttributeSet attrs)
{
super(context, attrs);
}
@Override
public void setChecked(boolean checked)
{
_isChecked = checked;
for (int i = 0; i < getChildCount(); i++)
{
View child = getChildAt(i);
if (child instanceof Checkable)
{
((Checkable) child).setChecked(_isChecked);
}
}
}
@Override
public boolean isChecked()
{
return _isChecked;
}
@Override
public void toggle()
{
_isChecked = !_isChecked;
}
}
所以ListView調用setChecked,然后將其傳播到子視圖,我的CheckBox / RadioButton將被正確選中/取消選中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.