Hola a todos!! os pongo el problemas que tengo: Tengo una aplicacion practicamente terminada. Al cual le hice una pequeña modificacion para que dandole a un
boton "consulta" me iniciara otra vista en la que me mostrara la base de datos, mostrandome unicamente la primera columna de cada registro.
Hasta la creacion de la base de datos me iva bien sin ningún problemas y podia recorrerla sin problemas e ir sacando y metiendo datos.
El problema me vino cuando hice la modificación para que una vez recogido todas las primeras columnas de cada registro , me los mostrara por pantalla en una listview que iva inflando. Esto parte me funciona a la perfeccion en el emulador de eclipse pero en el samsung galaxy del que dispongo no , y en cambio si me iva en el movil hasta justo antes de hacer esta última modificacion. Os pongo el codigo:
Primero os he puesto el codigo completo de la clase que me ha dado problemas , a continuacion las modificaciones (extractos de la clase completa) para que leais mas rapido y por ultimo los archivos xml uno para la clase y otro para el listview que voy inflando.
Alguna idea de porque no va en ell movil y si en el eclipse?
Codigo completo:
package com.sevilla;
import java.util.ArrayList;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class ConsultarCancionero extends Activity {
private ArrayList<String> cancioneros;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.consultarcancionero);
//Creo el array sobre el que ire guardando los titulos de las canciones
cancioneros=new ArrayList<String>();
//Abro la base de datos y la configuro para leer
UsuariosSQLiteHelper cancionero;
SQLiteDatabase baseDeDatos = null;
cancionero =new UsuariosSQLiteHelper(this,"Cancionero",null,1);
cancionero.openDataBase();
baseDeDatos=cancionero.getReadableDatabase();
//Creo un cursor y apunto a la primera entrada de la base de datos
Cursor r= baseDeDatos.query("Cancionero", new String[]{"titulo"} , null, null,null, null,null);
r.moveToFirst();
//Guarda en la lista todas las lista de canciones
int i= r.getCount()-1;
int j=0;
for(j=0;j<=i;j++){
String s=r.getString(0);
cancioneros.add(s);
r.moveToNext();
}
//Modifico el adaptador de vistaCancioneros
AdaptadorTitulares adaptador = new AdaptadorTitulares(this);
ListView vistaCancioneros = (ListView)findViewById(R.id.LstOpciones);
vistaCancioneros.setAdapter(adaptador);
}
//Creo la clase AdaptadorTitulares para modificar como quiero que salga ListView creandome mi propio adaptador
class AdaptadorTitulares extends ArrayAdapter {
Activity context;
AdaptadorTitulares(Activity context) {
super(context, R.layout.listitem_titular, cancioneros);
this.context = context;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View item = inflater.inflate(R.layout.listitem_titular, null);
TextView lblTitulo = (TextView)item.findViewById(R.id.LblTitulo);
lblTitulo.setText(cancioneros.get(position));
return(item);
}
}
}
Modificacion para inflar el listview AdaptadorTitulares adaptador = new AdaptadorTitulares(this);
ListView vistaCancioneros = (ListView)findViewById(R.id.LstOpciones);
vistaCancioneros.setAdapter(adaptador);
Array adapterclass AdaptadorTitulares extends ArrayAdapter {
Activity context;
AdaptadorTitulares(Activity context) {
super(context, R.layout.listitem_titular, cancioneros);
this.context = context;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View item = inflater.inflate(R.layout.listitem_titular, null);
TextView lblTitulo = (TextView)item.findViewById(R.id.LblTitulo);
lblTitulo.setText(cancioneros.get(position));
return(item);
}
}
listitem_titular.xml<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView android:id="@+id/LblTitulo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="20px" />
</LinearLayout>
concultar cancionero<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10px">
<ListView android:id="@+id/LstOpciones"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Gracias de antemano!!!