Android - Atascado con ListView

 
Vista:
sin imagen de perfil
Val: 197
Plata
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

Atascado con ListView

Publicado por Luis (97 intervenciones) el 01/10/2016 03:40:13
Hola a todos.
De nuevo intentando aprender un poco mas en este dificil mundo, en el que lo mas simple se pude complicar.

Disculpenme si cometo alguna barbaridad con el codigo pero como nuevo que soy sera lo mas seguro que cometa.

Atentos que voy.

En esta ocasion he conseguido poder mostrar todos los registros que voy guardando en una base de datos.

Los recojo en una string llamada buffer y los muestro en un simple mensaje.
showMessage("AGENDA", buffer.toString());

Tambien puedo mostrar los resultados en un TextView,
tv_mostrar_registros.setText(buffer);

Pero no consigo hacer que se muestren los resultados que estan en la string (buffer) en un ListView, quiero mostrarlos
en un ListView para poder seleccionar.

No le tengo que estar pasando la string corectamente ya que esta linea
ArrayAdapter adaptador = new ArrayAdapter(this,android.R.layout.simple_list_item_1, buffer);
Me dice: Cannot resolve constructor

Les agradeceria si me pudiesen ayudar saber que estoy haciendo mal.

Gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package com.example.homer.agenda;
 
import android.app.AlertDialog;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
 
public class Verusuariosennuevalistactivity extends AppCompatActivity {
 
    SQLiteDatabase db;
    TextView tv_mostrar_registros;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_verusuariosennuevalistactivity);
 
        tv_mostrar_registros =(TextView)findViewById(R.id.tv_todo);
 
        db=openOrCreateDatabase("DatosDB", Context.MODE_PRIVATE, null);
        db.execSQL("CREATE TABLE IF NOT EXISTS datos(telefono VARCHAR,nombre VARCHAR,apellido VARCHAR);");
 
        Cursor c=db.rawQuery("SELECT * FROM datos", null);
        if(c.getCount()==0) {
            showMessage("AGENDA", "No existen contactos");
            return;
        }
 
           // Se recojen los datos y se separan con un salto de linea \n            
 
        StringBuffer buffer=new StringBuffer();
        while(c.moveToNext()) {
            buffer.append("Telefono: "+c.getString(0)+"\n");
            buffer.append("Nombre: " + c.getString(1) + "\n");
            buffer.append("apellido: " + c.getString(2) + "\n\n");
 
        }
 
 
          // Este mensage muestra todos los resultados 
        showMessage("AGENDA", buffer.toString());
 
 
        // Este textview  muestra todos los resultados contenidos en el String buffer
        tv_mostrar_registros.setText(buffer);
 
 
   ////
   ////  **** Aqui es donde me atasco, intento que se muestren los resultados en un listView 
//////       pasandole el string bufer que contiene los datos para asi poder seleccionar cual borrar 
/////       obteniendo posteriomente su id, pero no se que estoy haciendo mal.
 
        ListView lista = (ListView) findViewById(R.id.lista);
 
        ArrayAdapter adaptador = new ArrayAdapter(this,android.R.layout.simple_list_item_1, buffer);
        lista.setAdapter(adaptador);
    }
 
    public void showMessage(String title,String message) {
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        builder.setCancelable(true);
        builder.setTitle(title);
        builder.setMessage(message);
        builder.show();
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 444
Oro
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

Atascado con ListView

Publicado por juanki (253 intervenciones) el 01/10/2016 12:35:26
Hola

Lo que te está diciendo el error es que la clase ArrayAdapter no tiene un constructor para manejar el tipo de datos (StringBuffer) que tu le quieres pasar.

Lo que tienes que hacer es crearte un adaptador personalizado a los datos que necesitas.

Como yo soy muy malo explicándolo, te pego un enlace que te lo van a explicar mucho más claro:
http://www.sgoliver.net/blog/interfaz-de-usuario-en-android-controles-de-seleccion-ii/

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 197
Plata
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

Atascado con ListView

Publicado por Luis (97 intervenciones) el 01/10/2016 15:48:53
Gracias Juanki por haberse tomado la molestia en responder.
He estado mirando tutoriales de CRUD y todos crean la clase usuarios para recoger set y get devolviendo los datos de cada usuario, pero intentaba evitar tener que crear esa clase ya que posteriormente he de crear otras actividades con otras tablas y como de momento no quiero tocar el tema de crear varias tablas ya que soy demasiado nuevo y esto se me queda grande y quería desde la misma activity poder hacerlo para así no liarme.

Únicamente he creado un layout con un listview que lo reutilizaria desde otras actividades.

Es por eso que me falta saber cómo creo el adaptador desde la misma activity.

Si no lo consigo tendré que hacerlo como bien dices Juanki.

Gracias.
Cualquier aporte es de agradecer.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 444
Oro
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

Atascado con ListView

Publicado por juanki (253 intervenciones) el 01/10/2016 17:24:06
Hola

Si los datos los obtienes de una base de datos, igual puedes usar un CursorAdapter.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 197
Plata
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

Atascado con ListView

Publicado por Luis (97 intervenciones) el 01/10/2016 19:10:07
Asi es haber si encuentro algun tutorial de como hacerlo sin crear una clase aparte.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Cursor c=db.rawQuery("SELECT * FROM datos", null);
        if(c.getCount()==0) {
            showMessage("AGENDA", "No existen contactos");
            return;
        }
 
           // Se recojen los datos y se separan con un salto de linea \n            
 
        StringBuffer buffer=new StringBuffer();
        while(c.moveToNext()) {
            buffer.append("Telefono: "+c.getString(0)+"\n");
            buffer.append("Nombre: " + c.getString(1) + "\n");
            buffer.append("apellido: " + c.getString(2) + "\n\n");
 
        }
 
 
          // Este mensage muestra todos los resultados 
        showMessage("AGENDA", buffer.toString());
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 197
Plata
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

Atascado con ListView

Publicado por Luis (97 intervenciones) el 02/10/2016 17:15:36
Hola Juanki quería decirte que si no me hubieras comentado seguirá ahí atascado lo he resuelto como indicabas luego desde el pc pondré al código por si a alguien le fuese necesario.
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 444
Oro
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

Atascado con ListView

Publicado por juanki (253 intervenciones) el 03/10/2016 10:28:16
Hola

¡¡Para eso estamos!!

Yo también estoy aprendiendo sobre Android, aunque ya he hecho uno cuantos programas más o menos complejos y algunos juegos no me siento totalmente cómodo con su API y el tratar de ayudar a otros me ayuda a mi a comprender mejor la extensa API de Android.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar