ExpandableListView no aparece cuando se inicia la actividad

Yayy, la codificación es muy divertida. Este es mi tercer intento de crear un ExpandableListView que está vinculado a un sqllite db. La última versión funcionó bien al recuperar datos, pero no tan grande cuando necesitaba eliminar o editar un elemento. Se basó fuera de la demostración de Api, expansionableListView 1 y 2. El código de Api sugirió que almaceno mi información en una matriz antes de que podría ser puesto en un ExpandablelistView. Creo que todos podemos ver un problema con la eliminación y actualización de los elementos que se almacenan en una matriz. Decidí empezar de nuevo, con algo mucho más limpio.

El siguiente código es mi intento de crear una actividad que rellene un valor expandibleListView con sqb db. Sin embargo, nada ocurre cuando se inicia la actividad, ni siquiera una excepción.

Supongo que mi problema se encuentra dentro de browseView.setAdapter (mAdapter); Pero realmente no sé de lo que estoy hablando y no tengo manera de demostrarlo! Si cambio el anterior a un listadapter lanza un nullpointerexception.

Por último, debe tenerse en cuenta que mi cursor getChildren pasa mi groupCursor directamente. Esto es sólo porque no he descubierto lo que entra aquí! Pequeños pasos.

¿Estoy en el buen camino aquí? Gracias por echar un vistazo.

public class BrowseActivity extends ExpandableListActivity { final private String[] asColumnsToReturn = { Items.ITEMS_TABLE_NAME + "." + Items.ITEMS_ITEM, Items.ITEMS_TABLE_NAME + "." + Items.ITEMS_DESC, Items.ITEMS_TABLE_NAME + "." + Items.ITEMS_ID }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.browse); DbHelper dbh = new DbHelper(this.getApplicationContext()); SQLiteDatabase db = dbh.getWritableDatabase(); SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder(); queryBuilder.setTables(Items.ITEMS_TABLE_NAME); ExpandableListView browseView = (ExpandableListView)findViewById(android.R.id.list); Cursor mCursor = queryBuilder.query(db, asColumnsToReturn, null, null, null, null, Items.DEFAULT_SORT_ORDER); startManagingCursor(mCursor); SimpleCursorTreeAdapter mAdapter = new SimpleCursorTreeAdapter(this, mCursor, R.layout.row, R.layout.exprow, new String[] { Items.ITEMS_ITEM }, new int[] { R.id.txtItem }, R.layout.exprow, R.layout.exprow, new String[] { Items.ITEMS_DESC }, new int[] { R.id.dscItem }) { @Override protected Cursor getChildrenCursor(Cursor groupCursor) { return groupCursor; } }; browseView.setAdapter(mAdapter); } } ***START NEW OF NEW CLASS FILE*** public class DbHelper extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 1; private static final String DB_NAME = "itemList.db"; DbHelper(Context context) { super(context, DB_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db){ db.execSQL("CREATE TABLE " + Items.ITEMS_TABLE_NAME + " (" + BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT ," + Items.ITEMS_ITEM + " TEXT," + Items.ITEMS_DESC + " TEXT," + Items.ITEMS_MANU + " TEXT," + Items.ITEMS_UPC + " TEXT," + Items.ITEMS_NWEIGHT + " TEXT," + Items.ITEMS_AWEIGHT + " TEXT)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } @Override public void onOpen(SQLiteDatabase db){ super.onOpen(db); } } ***START OF NEW CLASS FILE*** public class ItemDatabase { private ItemDatabase() { } public static final class Items implements BaseColumns { private Items() { } public static final String ITEMS_TABLE_NAME = "table_itemList"; public static final String ITEMS_ID = "_id"; public static final String ITEMS_ITEM = "item"; public static final String ITEMS_DESC = "description"; public static final String ITEMS_MANU = "manufacturer"; public static final String ITEMS_UPC = "upc"; public static final String ITEMS_NWEIGHT = "netweight"; public static final String ITEMS_AWEIGHT = "actualweight"; public static final String DEFAULT_SORT_ORDER = "item ASC"; } 

Y el archivo "browse" xml:

 <?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"> <ExpandableListView android:id = "@android:id/list" android:layout_height="fill_parent" android:layout_width="fill_parent" android:clickable="true" ></ExpandableListView> </LinearLayout> 

Es porque pasé el cursor del grupo directamente a través del método getChildrenCursor (). Tienes que crear un nuevo Cursor dentro del método.

 @Override protected Cursor getChildrenCursor(Cursor groupCursor) { String tempGroup = groupCursor.getString(groupCursor .getColumnIndex(Items.ITEMS_ITEM)); DbHelper dbh = new DbHelper(BrowseActivity.this); SQLiteDatabase db = dbh.getWritableDatabase(); String sqlString = "SELECT " + Items.ITEMS_ID + ", " + Items.ITEMS_DESC + ", " + Items.ITEMS_MANU + ", " + Items.ITEMS_NWEIGHT + ", " + Items.ITEMS_AWEIGHT + ", " + Items.ITEMS_UPC + " FROM " + Items.ITEMS_TABLE_NAME + " WHERE " + Items.ITEMS_ITEM + "=" + "'" + tempGroup + "'"; Cursor mCursor = db.rawQuery(sqlString, null); return mCursor; } 

Y el archivo de disposición de fila:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <TextView android:layout_gravity="center_vertical|right" android:id="@+id/txtItem" android:text="Item" android:layout_height="wrap_content" android:layout_width="fill_parent" android:textSize="15dip" ></TextView> <TextView android:layout_gravity="center_vertical|right" android:id="@+id/dscItemTwo" android:text="Desciption" android:layout_height="wrap_content" android:layout_width="fill_parent" android:textStyle="italic" android:textColor="#666666" ></TextView> </LinearLayout> 

Por último, el layout expRow ( Es un poco largo, tengo un montón de filas de la tabla.Tengo que admitir que las cosas están mal nombrados también.Quiero sólo para conseguir que funcione antes de que lo hizo bastante! ):

 <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_span = "2" android:stretchColumns="0" > <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow1" android:layout_gravity="right" android:layout_width="wrap_content" > <TableRow android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_weight = "1" android:id="@+id/tableRow10" android:layout_gravity="right" > <TextView android:layout_marginRight="1dip" android:textColor="#994020" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_width="wrap_content" android:text="Manufacturer" android:id="@+id/manuItem" ></TextView> </TableRow> <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow11" android:layout_width="wrap_content" ></TableRow> </TableRow> <TableRow android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/tableRow2" > <TableRow android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/tableRow9" android:layout_gravity="right" android:layout_weight="1" > <TextView android:layout_marginRight="1dip" android:textColor="#994020" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_width="wrap_content" android:text="Description" android:id="@+id/dscItem" ></TextView> </TableRow> <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/tableRow8" ></TableRow> </TableRow> <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow3" android:layout_width="fill_parent" > <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/tableRow6" android:layout_gravity="right" android:baselineAligned="true"> <TextView android:layout_marginRight="1dip" android:textColor="#994020" android:layout_height="wrap_content" android:layout_gravity="right" android:text="Net Weight" android:id="@+id/nWeightItem" android:layout_width="wrap_content" ></TextView> </TableRow> <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/tableRow7" > <TextView android:layout_marginRight="1dip" android:layout_gravity="right" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="ounces" android:textStyle="italic" android:id="@+id/textView1" ></TextView> </TableRow> </TableRow> <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow5" android:layout_width="wrap_content" > <TableRow android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/tableRow12" android:layout_weight="1" android:layout_gravity="right" > <TextView android:layout_marginRight="1dip" android:textColor="#994020" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_width="wrap_content" android:text="Actual Weight" android:id="@+id/aWeightItem" ></TextView> </TableRow> <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/tableRow13" > <TextView android:layout_marginRight="1dip" android:layout_gravity="right" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="ounces" android:textStyle="italic" android:id="@+id/textView111" ></TextView> </TableRow> </TableRow> <TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TableRow android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_weight="1" android:layout_gravity="right" android:id="@+id/tableRow14" > <TextView android:layout_marginRight="1dip" android:textColor="#994020" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_width="wrap_content" android:text="UPC" android:id="@+id/upcItem" ></TextView> </TableRow> <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/tableRow15" ></TableRow> </TableRow> </TableLayout> 
  • ¿Por qué obtengo una excepción de puntero nulo de TabWidget?
  • Cómo eliminar el espacio específico entre el padre y el niño en un ExpandableListView
  • ExpandableListView - ¿Es posible la expansión condicional?
  • El vídeo no se reproduce correctamente en el listview de android
  • Cómo cambiar el tamaño de AlertDialog en la pantalla del teclado
  • Android: en el interruptor de desplazamiento entre Vistas / Actividades / Fragmentos
  • Superponer una actividad en otra actividad O superponer una vista sobre otra
  • Cómo obtener el estado de la casilla de verificación en el listview expandible en android
  • Obtener el valor del atributo Hint de AttributeSet
  • ¿Cómo utilizo las clases de "superficie" de Android?
  • Android View.bringToFront () causa parpadeo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.