Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Iconos en un diálogo de lista

He estado buscando sobre ListDialogs. Siempre que usted puede poner el artículo que usted quiere con:

builder.setItems(items, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { } }); 

Y pensando en el objeto items, que es un CharSequence como este:

  • Cambiar fuente de la etiqueta flotante EditText y TextInputLayout
  • Token AccessToken: ACCESS_TOKEN_REMOVED en Facebook SDK de Android
  • GCM notificación de empuje funciona después de la aplicación de parada de la fuerza?
  • Línea negra bajo algunos elementos ListView
  • Mostrar sólo dos dígitos después de decimal
  • GetBackStackEntryCount () siempre devuelve 0 incluso después de agregar addToBackStack y executePendingTransactions ()
  •  CharSequence[] items = getResources().getStringArray(R.array.share_dialog_list); 

    Quiero saber si una manera (algún otro debe haber hecho: D) para hacer esto existe, pero con una vista personalizada con iconos a la izquierda, como este:

    Introduzca aquí la descripción de la imagen

  • Android alinea los elementos del menú a la izquierda en la barra de acción
  • Cómo deshabilitar la función de desplazamiento automático en Logcat?
  • Guardar la interfaz de usuario en el cambio de orientación - onSaveInstanceState no funciona como se esperaba si se conserva el fragmento
  • Actualización dinámica de un adaptador AutoCompleteTextView
  • Android Gallery en Android 4.4 (KitKat) devuelve un URI diferente para Intent.ACTION_GET_CONTENT
  • Gradle Construir sólo un sabor
  • 2 Solutions collect form web for “Iconos en un diálogo de lista”

    Aquí hay una solución completa con un ArrayAdapter extendido que permite los iconos.

    Vea las notas de diseño para diálogos en http://developer.android.com/design/building-blocks/dialogs.html Iconogaphy en http://developer.android.com/design/style/iconography.html y IconPacks en http: /developer.android.com/design/downloads/index.html

    Tenga en cuenta que el tamaño de estos se ve bastante bien en 48 x 48 dp, que no es un tamaño de paquete, por lo que tendrá que escalar su propio icono de las descargas.

    USO :

      @Override public void onClick(View v) { final String [] items = new String[] {"From Gallery", "From Camera"}; final Integer[] icons = new Integer[] {R.drawable.dialog_gallery_icon, R.drawable.dialog_camera_icon}; ListAdapter adapter = new ArrayAdapterWithIcon(getActivity(), items, icons); new AlertDialog.Builder(getActivity()).setTitle("Select Image") .setAdapter(adapter, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item ) { Toast.makeText(getActivity(), "Item Selected: " + item, Toast.LENGTH_SHORT).show(); } }).show(); } 

    ArrayAdapterWithIcon.java

     public class ArrayAdapterWithIcon extends ArrayAdapter<String> { private List<Integer> images; public ArrayAdapterWithIcon(Context context, List<String> items, List<Integer> images) { super(context, android.R.layout.select_dialog_item, items); this.images = images; } public ArrayAdapterWithIcon(Context context, String[] items, Integer[] images) { super(context, android.R.layout.select_dialog_item, items); this.images = Arrays.asList(images); } public ArrayAdapterWithIcon(Context context, int items, int images) { super(context, android.R.layout.select_dialog_item, context.getResources().getTextArray(items)); final TypedArray imgs = context.getResources().obtainTypedArray(images); this.images = new ArrayList<Integer>() {{ for (int i = 0; i < imgs.length(); i++) {add(imgs.getResourceId(i, -1));} }}; // recycle the array imgs.recycle(); } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); TextView textView = (TextView) view.findViewById(android.R.id.text1); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { textView.setCompoundDrawablesRelativeWithIntrinsicBounds(images.get(position), 0, 0, 0); } else { textView.setCompoundDrawablesWithIntrinsicBounds(images.get(position), 0, 0, 0); } textView.setCompoundDrawablePadding( (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 12, getContext().getResources().getDisplayMetrics())); return view; } } 

    Crear la vista personalizada como creamos para la vista de lista

    Alert_customlist.xml

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" android:background="#ffffffff"> <ImageView android:layout_width="50dp" android:layout_height="50dp" android:textColor="#ffff0000" android:textSize="20dp" android:id="@+id/text1"/> <TextView android:text="text view two" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#ffff0000" android:textSize="20dp" android:id="@+id/text2"/> </LinearLayout> 

    Ahora agrega esta vista al objeto AlertDialog de esta manera

    Comprobar este post http://mgmblog.com/2010/06/10/arrayadapter-and-alertdialog-for-single-choice-items/

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.