我尝试制作一个 Spinner,其中下拉视图中的第一项没有单选按钮。我重写了 arrayadapter 的视图类型,以确保微调器中有两个不同的视图,并且视图不会被错误的项目回收。然后我覆盖 arrayadapter 的 getDropDownView 以从第一项中删除单选按钮。这是有效的,但所选项目不显示单选按钮。我想我不必 setCheckMarkDrawable(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;
}
}