У меня есть список изображений, загруженных в AlertDialog с использованием пользовательского ArrayAdapter, и я использую AlertDialog builder.setSingleChoiceItems, но в нем не отображаются кнопки Radio.Вот мой код:
final ListAdapter adapter = new IconAdapter(AddNote.this, R.layout.list_image_item);
btnPickIcon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(AddNote.this);
builder.setTitle("Pick an icon");
builder.setSingleChoiceItems(adapter, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item)
{
Toast.makeText(AddNote.this, "You selected " + item,Toast.LENGTH_LONG).show();
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
И адаптер:
class ViewHolder {
ImageView icon;
}
public class IconAdapter extends ArrayAdapter<Integer> {
// ArrayList<View> imageViews = new ArrayList<View>();
private Integer[] mIconList = {
R.drawable.symbol1, R.drawable.symbol2, R.drawable.symbol3, R.drawable.symbol4, R.drawable.symbol5};
public IconAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
}
ViewHolder holder;
public int getCount() {
return mIconList.length;
}
public Integer getItem(int position) {
return mIconList[position];
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
final LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_image_item, null);
holder = new ViewHolder();
holder.icon = (ImageView) convertView.findViewById(R.id.listImage);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
Drawable tile = getResources().getDrawable(mIconList[position]);
holder.icon.setImageDrawable(tile);
return convertView;
}
}
Кто-нибудь знает, почему не отображаются переключатели?