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.
- ¿Es posible cambiar el navegador / motor predeterminado para la vista Web de Android?
- Mantener la posición de desplazamiento en RecyclerViews anidados
- Actualizar la posición de la vista debajo de otra vista en Android
- Android deslizar la tarjeta con una pizca para ampliar la vista de la imagen con SwipeFlingAdapterView biblioteca
- YouTubePlayerFragment en ListView con AppCompatActivity Error
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>
- ¿Cómo escondo un WebView?
- SYSTEM_UI_FLAG_LOW_PROFILE no se puede resolver o no es un campo para google threadsample
- cómo establecer el color de texto de webview en android
- OnTouchListener para toda la pantalla
- ¿Cómo puedo obtener la altura del teclado del método de entrada actual sin mostrarlo?
- Androide ProgressDialog: configuración de vista personalizada en lugar de mensaje - ¿este trabajo?
- Expanda todos los niños en la vista de lista expandible
- Android en la vista eliminado de los padres
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