Cuadro de diálogo de alerta personalizado con listview personalizado

Necesito crear un diálogo de alerta personalizada con una sola opción. Pero los artículos tienen su propio diseño:

[VER (sólo color) _______ TEXT_______RADIOBUTTON]

He creado un diseño personalizado para listview, adaptador personalizado y tienen un buen resultado Introduzca aquí la descripción de la imagen

Pero no puedo hacer una sola opción, nadie escucha establece listview …: Aquí está mi adaptador:

public class AlertListAdapter extends BaseAdapter { ArrayList<AlertChoiceItem> mData; Context mContext; LayoutInflater inflater; public AlertListAdapter(ArrayList<AlertChoiceItem> data, Context context) { mData = data; mContext = context; inflater = LayoutInflater.from(context); } @Override public int getCount() { return mData.size(); } @Override public Object getItem(int arg0) { return null; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater mInflater = (LayoutInflater) mContext .getSystemService(Activity.LAYOUT_INFLATER_SERVICE); convertView = mInflater.inflate(R.layout.item_alert_list, null); } TextView tvTitle = (TextView) convertView.findViewById(R.id.tvTitleAlertList); View v = (View) convertView.findViewById(R.id.vPriorAlertList); v.setBackgroundColor(GetColorByPriority.getColor(position, mContext)); tvTitle.setText(mData.get(position).getTitle()); RadioButton rb = (RadioButton) convertView.findViewById(R.id.rbRadioAlertList); return convertView; } 

}

Aquí puedo crear alerta:

 AlertDialog.Builder dialog = new AlertDialog.Builder(getActivity()); // dialog.setContentView(R.layout.alert_list_radio); dialog.setTitle("List Title"); View customView = LayoutInflater.from(getActivity()).inflate( R.layout.alert_list_radio, null, false); ListView listView = (ListView) customView.findViewById(R.id.lvAlertList); // ArrayAdapter<String> ad = new ArrayAdapter<String>(this, // R.layout.single_item_layout , R.id.singleItem, dummies); ArrayList<AlertChoiceItem> itemList = new ArrayList<AlertChoiceItem>(); itemList.add(new AlertChoiceItem(false, "Critical", 5)); itemList.add(new AlertChoiceItem(false, "High", 4)); itemList.add(new AlertChoiceItem(false, "Medium", 3)); itemList.add(new AlertChoiceItem(false, "Low", 2)); itemList.add(new AlertChoiceItem(false, "Very low", 1)); itemList.add(new AlertChoiceItem(false, "Off filter", 0)); AlertListAdapter mAdapter = new AlertListAdapter(itemList, getActivity()); listView.setAdapter(mAdapter); listView.setOnItemClickListener(mOnItemClick); listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); dialog.setView(customView); dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }); dialog.show(); 

¿Cómo agregar una sola opción?

UPD: AlertChoiceItem implen:

 public class AlertChoiceItem { private boolean isChecked; private String title; private int prior; public AlertChoiceItem(boolean isChecked, String title, int prior) { super(); this.isChecked = isChecked; this.title = title; this.prior = prior; } public boolean isChecked() { return isChecked; } public void setChecked(boolean isChecked) { this.isChecked = isChecked; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public int getPrior() { return prior; } public void setPrior(int prior) { this.prior = prior; } 

}

Resolver el problema de tal manera:

1) Haga que todas las vistas (!) En el diseño no se puedan enfocar.

2) Establecer onClickItemListener en la actividad de listview

3) Con cada clic enviar a la señal del adaptador para eliminar todas las verificaciones, establecer nuevo (por posición) y volver a dibujar listview.

Establecer en el archivo xml de item_alert_list

 android:focusable = "false" android:focusableInTouchMode="false" 

Para todos sus elementos de la interfaz de usuario.

Usted puede intentar agregar el listener de ItemClick a su listview

 listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { // do whatever you want } }); 

Compruebe la implementación de AlertChoiceItem . Asegúrese de que implementa la interfaz Checkable , así como pasa a través de la RadioButton subyacente que está utilizando.

  • NotifyDataSetChanged no funciona
  • ViewPager dentro de ListView
  • ¿Cómo conectar una aplicación de Android a una base de datos remota?
  • Android checkable listview
  • Después de buscar elementos de ListView en Android, siempre abra el primer elemento de ListView (Issue)
  • ListView se desplaza hacia arriba cuando EditText crece
  • ¿Cuál es la diferencia entre BaseAdapter y ArrayAdapter?
  • Android Action Bar Search: ¿Cómo filtrar una lista por la propiedad de un elemento de la lista?
  • SwipeRefreshLayout con múltiples ListViews
  • Optimizar y reducir la sobrecarga de GPU - Android
  • Último elemento de ListView: Fab lo oculta
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.