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


Android – Ejecutar un listview personalizado en un cuadro de diálogo personalizado correctamente

Tengo una aplicación donde me gustaría mostrar una vista de lista personalizada que consta de dos textViews dentro de un cuadro de diálogo personalizado en android. Hasta ahora, estoy teniendo dificultades para averiguar cómo conectar los dos y generar el contenido del cuadro de diálogo.

Intenté seguir los tutoriales listView personalizados con la esperanza de configurar el adaptador de diálogo pero sin éxito.

Hasta ahora, esto es lo que tengo hasta ahora:

Se trata de list_row_dialog.xml, el diseño de la fila que contiene dos vistas de texto:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minHeight="50dp" android:orientation="horizontal" android:padding="5dip" > <TextView android:id="@+id/unit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold" android:typeface="sans" /> <TextView android:id="@+id/quantity" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:textColor="#343434" android:textSize="12sp" /> </RelativeLayout> 

Y aquí está el archivo dialog_main.xml, el archivo de diseño que quiero que el cuadro de diálogo utilice, es básicamente un listView.

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:id="@+id/custom_list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:dividerHeight="1dp" /> </LinearLayout> 

Y aquí está CustomListAdapterDialog.java, no estoy seguro si incluso necesito usar esto para mostrar datos en el cuadro de diálogo:

 public class CustomListAdapterDialog extends BaseAdapter { private ArrayList<ItemClass> listData; private LayoutInflater layoutInflater; public CustomListAdapterDialog(Context context, ArrayList<ItemClass> listData) { this.listData = listData; layoutInflater = LayoutInflater.from(context); } @Override public int getCount() { return listData.size(); } @Override public Object getItem(int position) { return listData.get(position); } @Override public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = layoutInflater.inflate(R.layout.list_row_dialog, null); holder = new ViewHolder(); holder.unitView = (TextView) convertView.findViewById(R.id.unit); holder.quantityView = (TextView) convertView.findViewById(R.id.quantity); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.unitView.setText(listData.get(position).getVariant().toString()); holder.quantityView.setText(listData.get(position).getUnit().toString()); return convertView; } static class ViewHolder { TextView unitView; TextView quantityView; } } 

Inicialmente, probé este código para mostrar el cuadro de diálogo:

 private void showDialog(){ final Dialog dialog = new Dialog(this); dialog.setContentView(R.layout.dialog_main); dialog.show(); } 

Pero sólo muestra, una fila en blanco, es muy claro que no lo estoy poblando correctamente.

Alguna idea de alguien? Además, puedo rellenar los cuadros de diálogo en la función showDialog() ya que también tengo los datos que quiero rellenar con la misma clase de java.

    One Solution collect form web for “Android – Ejecutar un listview personalizado en un cuadro de diálogo personalizado correctamente”

    ¿Estás haciendo lo siguiente? Usted necesitará inflar el archivo de disposición dialog_main , encontrar el ListView , fijar un adaptador y un OnItemClickListener para él. Después de esto, puede utilizar el método setContentView(View) del diálogo para obtener la lista que se mostrará.

     private void showDialog(){ final Dialog dialog = new Dialog(this); View view = getLayoutInflater().inflate(R.layout.dialog_main, null); ListView lv = (ListView) view.findViewById(R.id.custom_list); // Change MyActivity.this and myListOfItems to your own values CustomListAdapterDialog clad = new CustomListAdapterDialog(MyActivity.this, myListOfItems); lv.setAdapter(clad); lv.setOnItemClickListener(........); dialog.setContentView(view); dialog.show(); } 

    Por cierto, su adaptador se ve bien. No funciona porque no le estás dando nada para trabajar.

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