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

Respuesta
 
Herramientas
  #1  
Viejo 10/10/11, 23:52:52
Array

[xs_avatar]
Colymore
Usuario invitado
 
Mensajes: n/a

nullpointerexception obteniendo datos de BBDD

Intentando rellenar un listview desde sqlite obtengo un nullpointerexception, os copio a ver si alguien sabe ayudarme

Código:
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.Media.DATA);
    	        cursor.moveToFirst();
    	        return cursor.getString(column_index);
    	    }
    */

		


			
		}
Código:
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:
Código:
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(ActivityThread.java:1647)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086):     at android.app.ActivityThread.startActivityNow(ActivityThread.java:1487)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086):     at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086):     at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086):     at android.widget.TabHost$IntentContentStrategy.getContentView(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(TabHost.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.java: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$MethodAndArgsCaller.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(DataBaseHelper.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(Instrumentation.java:1047)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
10-10 23:39:02.620: ERROR/AndroidRuntime(2086):     ... 18 more
Responder Con Cita


Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 17:22:30 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /