2011-04-29 20 views
7

Estoy tratando de implementar actividad con ListView entre otros widgets. Entonces, si lo entiendo correctamente, no puedo usar ListActivity (porque muestra solo un gran ListView que está bien para mí).¿Es posible usar un ListView sin ListActivity en Mono Android?

me encontré con un montón de diferentes ejemplos de hacer esto en Java desde SO como this o this o great example.
He intentado hacerlo de la misma manera, pero no funciona correctamente. Tengo curiosidad es esta funcionalidad existe en mono Android en absoluto?

I encontró sólo un ejemplo del uso de ListView en androide mono que es this y este ejemplo describimos utilizando sólo ListActivity.

lo tanto, mi diseño:

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

Mi OnCreate:

protected override void OnCreate(Bundle bundle) 
    { 
     base.OnCreate(bundle); 
     SetContentView(Resource.Layout.CreateUser); 

     JavaList<string> somadata = new JavaList<string> { "111", "222", "333" }; 

     ListView view = FindViewById<ListView>(Resource.Id.list); 
     view.Adapter = new ArrayAdapter<string>(this, Resource.Layout.CreateUser, somadata); 
     view.TextFilterEnabled = true;   
    } 

Respuesta

9

que acaba de encontrar una solución. Tenía error en esta línea:

view.Adapter = new ArrayAdapter<string>(this, Resource.Layout.CreateUser, somadata); 

This tema me ayuda mucho.

Aquí hay una lista adicional de diseños que puede use.

Las fuentes de diseños predefinidos son here.

Por lo tanto, hay dos opciones para solucionar el error y hacer que ListView funcione sin ListActivity en Mono Android.
Primero:
Justo diseño de copia/pasta de recurso estándar llamado simple_list_item_1:

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:gravity="center_vertical" 
    android:paddingLeft="6dip" 
    android:minHeight="?android:attr/listPreferredItemHeight" 
/> 

segundo lugar (estoy seguro de que es una mejor manera):
sólo tiene que utilizar los recursos estándar. En Mono Android nombró Android.Resource.Layout.SimpleListItem1
Así que mi versión actualizada OnCreate que funciona perfecto:

protected override void OnCreate(Bundle bundle) 
    { 
     base.OnCreate(bundle); 
     SetContentView(Resource.Layout.CreateUser); 

     JavaList<string> somadata = new JavaList<string> { "111", "222", "333" }; 

     ListView view = FindViewById<ListView>(Resource.Id.list); 
     view.Adapter = new ArrayAdapter<string>(this, Android.Resource.Layout.SimpleListItem1, somadata); 
    } 
+1

Thnx. ¡¡¡Funcionó 4 yo también !! – GAMA

Cuestiones relacionadas