|
||
|
![]() |
![]() |
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
Herramientas |
#1
|
||||
|
||||
setText desde la base de datos sqlite
Hola. Necesito una mano.
Quiero cargar un textView con una columna de una tabla de mi base de datos. Como no se trata de una lista que puedo usar el cursor segun la posicion, quisiera cargar el texto de una tabla segun el _ID. La verdad me quedé trabado ahí. Con algo como esto obtengo el nombre del contacto segun la posicion. Pero no es eso lo que quiero ya que no es para una lista ni para hacer clic sobre algo. Es para un scroll asi que necesito cargar un nombre según el _ID. [PHP]listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Cursor e = (Cursor) adapter.getItem(position); String nombre = c.getString(c.getColumnIndex(Script.ColumnContacto s.NOMBRE)); Intent b = new Intent(Activity2.this, DetailActivity.class); b.putExtra("nombre", nombre); startActivity(b); } }); }[/PHP] Por ejemplo, en el onCreate quiero declarar el el texto y setear el nombre según el _ID que yo especifique . algo así tx = (TextView) findViewById(R.id.textView1); String hora = e.getString(e.getColumnIndex(Script.ColumnContacto s.NOMBRE)); tx.setText(NOMBRE); Es claro que esto no está funcionando y tambien necesito clarar la posicion en la tabla según el _ID. alguien podria darme una mano por favor? Saludos y muchas gracias. ![]() |
|
#2
|
||||
|
||||
Será que formule mal la consulta? Cosa que no creo ya que me habrían dicho.
Tirando chispa vía Tapatalk! |
#3
|
||||
|
||||
Si tienes un Cursor, podrías
1. Implementar un CursorAdapter 2. Si el tamaño no es problema, convertir de Cursor a List<Elemento> y pasarle la List a la vista, para que esta la muestre en ListView/RecyclerView, donde podrás gestionar el click conociendo qué elemento hay en esa posición
__________________
|
Gracias de parte de: | ||
#4
|
||||
|
||||
Si tienes un Cursor, podrías
1. Implementar un CursorAdapter 2. Si el tamaño no es problema, convertir de Cursor a List<Elemento> y pasarle la List a la vista, para que esta la muestre en ListView/RecyclerView, donde podrás gestionar el click conociendo qué elemento hay en esa posición ![]() Es posible que hice mal mi consulta. Muchas gracias por la respuesta. Ya tengo actualmente una lista en la cual cargo todos los registros a una lita. Lo que necesito saber es como elegir un texto solo de un registro para mostrar en un textView solo, no lista. La lista la selecciono así: public Cursor obtenerTablaEjemplo() { return getWritableDatabase().rawQuery( "select * from " + Script.EJEMPLO_TABLE_NAME + " ORDER BY _ID DESC", null); } Cada registro tiene un id. Mi tabla tiene los campos: public static class ColumnEjemplo { public static final String ID = BaseColumns._ID; public static final String NOMBRE = "nombre"; public static final String APELLIDO = "apellido"; public static final String CORREO = "correo"; } Supongamos que en la tercera fila o registro está en nombre: Gonza28. o sea en el ID 3 Yo quiero hacer un setText de Gonza28 y para ello deberia usar el ID verdad? masomenos lo puse en el ejemplo poco claro de arriba del primer post. En el oncreate tengo un textView. solo eso, un texto en el cual quiero cargar el nombre de Gonza28 que está en el ID 3. Esto no quiere decir que voy a poner ese textos, solo es un ejemplo para después hacer otra cosas como poner un scroll y setear el contenido individualmente. |
#5
|
||||
|
||||
Creo que no estoy entendiendo algo. Si en cada fila de la base de datos tienes toda la información, por qué no te defines un modelo y mapeas cada fila del cursor a una instancia del modelo?
Es decir, si la tabla tiene las columnas "id", "nombre" "apellido" y "correo", por qué no te creas una clase Java que tenga esos 4 atributos? Así por cada fila del cursor coges los datos de cada columna y vas llenando el modelo. No termino de entender a qué llamas "fila" o "registro". Eso no son las columnas de la base de datos? Las filas son cada una de las entradas en la base de datos, generalmente
__________________
Última edición por Dexafree Día 19/05/16 a las 12:32:03. |
#6
|
||||
|
||||
Creo que no estoy entendiendo algo. Si en cada fila de la base de datos tienes toda la información, por qué no te defines un modelo y mapeas cada fila del cursor a una instancia del modelo?
Es decir, si la tabla tiene las columnas "id", "nombre" "apellido" y "correo", por qué no te creas una clase Java que tenga esos 4 atributos? Así por cada fila del cursor coges los datos de cada columna y vas llenando el modelo. No termino de entender a qué llamas "fila" o "registro". Eso no son las columnas de la base de datos? Las filas son cada una de las entradas en la base de datos, generalmente ![]() La cuestion es que solo estoy poniendo un ejemplo ya que una tabla estrocturada, la voy a seleccionar toda y cargar en una lista. Hasta ahí bien. Pero esta consulta la hago porque en varios puntos de la aplicacion necesito setear una sola fila por cualquier motivo. Entiendes? no siempre utilizamos listas o recyclerView. Ahi es donde no puedo saber aún en android como hacerlo. En mysql , en mi caso hago una seleccion con un ID. pero acá no pude poner lel ID. Ejemplo: Solo quiero mostrar el nombre de Irina ya que el usuario que tiene instalada la app se llama Irina, es una chica y quiero mostrar su nombre en el Header del menu drawer. Para eso inflo el layout header_drawer.xml y el setText, ahora necesito seleccionar su nombre y cargarlo en el header, pero el nombre, no la lista. ![]() |
#7
|
||||
|
||||
Yo tampoco entiendo cuál es el problema. Si dices que ya lees la tabla entera supongo que guardarás en un array todas las "filas" para luego pasárselas a la lista con un ArrayAdapter. ¿No?
Teniendo el array puedes recorrerlo y quedarte con el dato que quieras. P.D.: Y si dices que es sqlite tampoco veo problema en que hagas un select con el ID que quieras, si fuera una conexión de red igual no, pero en local... Por si eso fuera lo que no sabes hacer, es un SELECT igual pero añadiendo WHERE variable=loquesea , y entonces en vez de devolver todas te devuelve las filas que cumplan el criterio
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Última edición por mocelet Día 19/05/16 a las 17:13:42. |
Gracias de parte de: | ||
![]() |
![]() |
||||||
|