我尝试制作一个Spinner,其中下拉视图中的第一项没有单选按钮。我覆盖了ArrayAdapter的ViewTypes,以确保Spinner中有两个不同的视图,并且这些视图不会错误地进行回收。然后我覆盖ArrayAdapter的getDropDownView方法,以从第一项中删除单选按钮。这是有效的,但选择的项目没有显示单选按钮。我认为我不必设置CheckMarkDrawable(android.R.drawable.btn_radio),因为它应该始终存在,但事实并非如此。有什么想法吗?谢谢!
@Override
public int getViewTypeCount()
{
return 2;
}
@Override
public int getItemViewType(int position)
{
if (position == 0)
return 0;
else
return 1;
}
@Override
public View getDropDownView(int position, View convertView, android.view.ViewGroup parent)
{
if (position == 0)
{
View vw = super.getDropDownView(position, convertView, parent);
CheckedTextView tv = (CheckedTextView) vw;
if (tv != null)
{
tv.setCheckMarkDrawable(null);
tv.setTextColor(Color.GRAY);
return tv;
}
return vw;
} else
{
View vw = super.getDropDownView(position, convertView, parent);
CheckedTextView tv = (CheckedTextView) vw;
if (tv != null)
{
tv.setCheckMarkDrawable(android.R.drawable.btn_radio);
tv.setTextColor(Color.BLACK);
return tv;
}
return vw;
}
}