我在对话模式下使用Spinner。 我使用setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)为Spinner设置SimpleCursorAdapter; 这很好。
现在我没有使用simple_spinner_dropdown_item来尝试传递我的自定义布局,它确实也能正常工作。
但是有一个但是......它没有原始simple_spinner_dropdown_item所做的单选按钮。 是否可以在我的自定义spinner_dropdown_item中添加单选按钮,该按钮将在显示微调器对话框时选择?
答案 0 :(得分:0)
是的,但是你必须为spinner定义另一个类。请看this
您还有一个选项可以满足您的要求。那是Alert dialog
只需查看此Alert Dialog Window with radio buttons in Android和How to create custom and drop down type dialog and Dialog in android
即可答案 1 :(得分:0)
我找到了解决方案。 ListView(旋转器对话框内部的内容)将检查您的View是否可检查并调用setChecked。由于android.R.layout.simple_spinner_dropdown_item是可检查的,因此可行。 因此,对于我的自定义List项,我创建了实现Checkable
的LinearLayoutpublic 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将被正确选中/取消选中。