PDA

Ver la Versión Completa : nullpointerexception obteniendo datos de BBDD


Colymore
10/10/11, 23:52:52
Intentando rellenar un listview desde sqlite obtengo un nullpointerexception, os copio a ver si alguien sabe ayudarme

public class DataBaseHelper extends SQLiteOpenHelper {

private static String DB_PATH = "/data/data/com.rbrlnx.lugares/databases/";
private static final String DATABASE_NAME="db.db";
SQLiteDatabase db;

String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS lugares (" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"nombre text," +
"descripcion text,"+
"latitud real," +
"longitud real," +
"foto String);";

/*Primero se crea constructor, funcion onCreate, onUpgrade,Abrir y Cerrar*/

public DataBaseHelper(Context context){
super(context,DATABASE_NAME,null,1);

}

public void onCreate(SQLiteDatabase db){
try {
openDataBase();
db.execSQL(CREATE_TABLE);
} catch (Exception e) {
// handle exception
}
}

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}
public void openDataBase() throws SQLException{

//Open the database
String myPath = DB_PATH + DATABASE_NAME;
db = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);

}

public void close(){
db.close();
}


/*Despues metodos para añadir y obtener datos*/

public long addNombre(String nombre){

ContentValues cv = new ContentValues();
cv.put("nombre", nombre);
return db.insert("lugares", null, cv);
}

public long addDescripcion(String descripcion){

ContentValues cv = new ContentValues();
cv.put("descripcion", descripcion);
return db.insert("lugares", null, cv);

}
public long addLatitud(double latitud){

ContentValues cv = new ContentValues();
cv.put("latitud", latitud);
return db.insert("lugares", null, cv);

}
public long addLongitud(double longitud){

ContentValues cv = new ContentValues();
cv.put("longitud", longitud);
return db.insert("lugares", null, cv);

}

public long addFoto(String foto) {

ContentValues cv = new ContentValues();
cv.put("foto", foto);
return db.insert("lugares", null, cv);

}

/* public Cursor getNombres(){

SQLiteDatabase db = this.getWritableDatabase();
Cursor cur= db.rawQuery("SELECT nombre FROM lugares",null);
return cur;


}
*/
public Cursor getNombres(){
Cursor respuesta = db.rawQuery("select nombres from lugares", null);

return respuesta;

}
/* public long addImagen(Uri directorioimagen){

//Obtenemos el string del patch de la imagen
String imagen = getRealPathFromURI(directorioimagen);
ContentValues cv = new ContentValues();
cv.put("foto", imagen);
return db.insert("lugares", null, cv);


}


/*Metodo que conveierte una uri de imagen clickeada en gallery a patch
public String getRealPathFromURI(Uri contentUri, Context ctx) {
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Med ia.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
*/





}



public class listatab extends ListActivity{

Context context;
ListView listanombres;
DataBaseHelper ayudabbdd;


public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ayudabbdd = new DataBaseHelper(this);
Cursor nombresC;

nombresC = ayudabbdd.getNombres();
startManagingCursor(nombresC);
if(nombresC!=null){
ListAdapter adapter = new SimpleCursorAdapter(this, R.layout.listatab, nombresC, new String[] { "nombre" }, new int[] { R.id.lista });
this.setListAdapter(adapter);
this.getListView().setTextFilterEnabled(true);

}
}
override
protected void onDestroy() {
super.onDestroy();
if (ayudabbdd != null) {
ayudabbdd.close();
}
}
}



Error:
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rbrlnx.lugares/com.rbrlnx.lugares.listatab}: java.lang.NullPointerException
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:1647)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at android.app.ActivityThread.startActivityNow(Activi tyThread.java:1487)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at android.app.LocalActivityManager.moveToState(Local ActivityManager.java:127)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at android.app.LocalActivityManager.startActivity(Loc alActivityManager.java:339)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at android.widget.TabHost$IntentContentStrategy.getCo ntentView(TabHost.java:654)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at android.widget.TabHost.setCurrentTab(TabHost.java: 326)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at android.widget.TabHost$2.onTabSelectionChanged(Tab Host.java:132)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at android.widget.TabWidget$TabClickListener.onClick( TabWidget.java:456)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at android.view.View.performClick(View.java:2485)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at android.view.View$PerformClick.run(View.java:9080)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at android.os.Handler.handleCallback(Handler.java:587 )
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at android.os.Handler.dispatchMessage(Handler.java:92 )
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at android.os.Looper.loop(Looper.java:130)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at android.app.ActivityThread.main(ActivityThread.jav a:3683)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at java.lang.reflect.Method.invokeNative(Native Method)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at java.lang.reflect.Method.invoke(Method.java:507)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:839)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:597)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at dalvik.system.NativeStart.main(Native Method)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): Caused by: java.lang.NullPointerException
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at com.rbrlnx.lugares.DataBaseHelper.getNombres(DataB aseHelper.java:104)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at com.rbrlnx.lugares.listatab.onCreate(listatab.java :23)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at android.app.Instrumentation.callActivityOnCreate(I nstrumentation.java:1047)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): at android.app.ActivityThread.performLaunchActivity(A ctivityThread.java:1611)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086): ... 18 more