2010-07-09 7 views

Respuesta

2

Aquí tiene una solución de trabajo. No es mío, pero usé la técnica descrita y funcionó. No se olvide de img.setBounds(), ¡es necesario!

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

PD: post original no muestra botón de radio, pero mi diseño lo hace. Mi archivo de diseño única fila XML (animal_row.xml no se encuentra en el ejemplo) está aquí:

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/miastorow_text" 
android:layout_width="fill_parent" 
android:layout_height="?android:attr/listPreferredItemHeight" 
android:textAppearance="?android:attr/textAppearanceLarge" 
android:gravity="center_vertical" 
android:checkMark="?android:attr/listChoiceIndicatorSingle" 
android:paddingLeft="6dip" 
android:paddingRight="6dip" 
android:textColor="#000" 
/> 
+0

impresionante, gracias. –

2

Puede sobrescribir todo y crearlo desde cero. Primero crea un xml que describa el contenido que deseas. Por ejemplo:

<!-- test.xml --> 
<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
android:background="@color/white"> 
<ImageView android:id="@+id/ImageView01" 
    android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
    android:src="@drawable/facebook"></ImageView> 
<TextView android:id="@+id/TextView01" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@+id/ImageView01" 
    android:text="Facebook" 
      android:textSize="40sp"></TextView> 
<RadioButton android:id="@+id/RadioButton01" 
    android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
    android:layout_toRightOf="@+id/TextView01"></RadioButton> 
</RelativeLayout> 

A continuación, cree este xml utilizando el cuadro de diálogo de alerta. Usted puede dejar que la actividad de manejar su diálogo y simplemente reemplazar el onCreateDialog así:

@Override 
protected Dialog onCreateDialog(int id) { 
    View view = LayoutInflater.from(MainActivity.this).inflate(R.layout.test, null); 
    return new AlertDialog.Builder(MainActivity.this).setView(view).setTitle("Share") 
        .create(); 
} 

continuación Puede anular onClick para almacenar el estado en sus archivos StaticPreferences. De esta forma, tendrás control total sobre todos los elementos en tu vista.

Un último consejo al crear el xml, asegúrese de crear un diseño lo más plano posible para que el código esté optimizado. También puedes jugar con el diseño de la lista para crear algo como esto.

+0

Respuesta equivocada, en mi diseño mención cuestión, en su diseño xml usted está haciendo botón de radio sub niño de disposición relativa, haciendo botón de opción hijo de otro que no sea un grupo de radio no funciona. En este caso, su respuesta falla. –

+0

@Faisal khan: Él solo estaba dando un ejemplo. – Macarse

0

No trabajé en ello. Pero tengo una Idea para ti que combina los tres ejemplos en demostraciones de API.

  1. AlertDialogs
  2. SingleChoice Adapter
  3. Efficient Adapter

los pasos que hay que hacer son:

  • Crear AlertDialog
  • Crear Lista de clase adaptador para la vista que desea lograr.
  • Utilice el método SetAdapter para establecer el ListAdapter.

Código de ejemplo:

new AlertDialog.Builder(MainActivity.this).setTitle("Share")setAdapter(new Listadapterclass(),new DialogInterface.OnClickListener(){ 

          @Override 
          public void onClick(DialogInterface arg0, 
            int arg1) { 
           // TODO Auto-generated method stub 
     // the click event on the list item selected       
          }}) 
       .create(); 

esperar que funcione.

+0

no funciona cómo tenemos botón de radio trabajando en un grupo con inflat –

Cuestiones relacionadas