ドロップダウンビューの最初のアイテムにラジオボタンがないスピナーを作成しようとしています。スピナーに2つの異なるビューがあり、ビューが間違ったアイテムにリサイクルされないように、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;
}
}