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.
- SurfaceView en ScrollView en 4.1
- Cómo mostrar la imagenVer pantalla completa en la imagen¿Haga clic?
- Android webview css margen izquierda / derecha no funciona
- Android: aplica una transformación arbitraria a una vista
- Android deslizar la tarjeta con una pizca para ampliar la vista de la imagen con SwipeFlingAdapterView biblioteca
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>
- ¿Por qué se ignoran los clics en mi ExpandableListView?
- Vista web de Android ui
- Cómo manejar el evento de clic de niño en Expandablelistview en Android?
- Escala de diseño relativo personalizado?
- Ampliar / reducir en webview android
- ¿Cómo mostrar la lista desplegable-ver debajo de la vista particular en android?
- Java.util.ConcurrentModificationException in View.setVisibility
- El método setLayoutParams () no funciona
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>
- Cómo configurar / calcular texturebuffer en glTexCoordPointer al importar desde archivo OBJ
- Implementar zoom en scrollView android