2011-05-17 5 views
0

J'ai des problèmes avec la création de la table sql. J'ai un listview qui devrait stocker des titres et une autre activité qui saisit l'information et l'envoie onActivityResult.Aide de la base de données SQLite

C'est la méthode createFavorite dans la classe MyDatabaseHelper.

public long createFavorite(String title, int lon , int lat) { 
     ContentValues initialValues = new ContentValues(); 
     initialValues.put(KEY_TITLE, title); 
     initialValues.put(KEY_LAT, lat); 
     initialValues.put(KEY_LON, lon); 
     return mDb.insert(DATABASE_TABLE, null, initialValues); 
    } 

et c'est là que je prends l'information et la fais passer comme un paquet.

public class SaveFav extends Activity { 

    EditText textBox; 
    Button saveAs; 
    LocationListener loc; 
    LocationManager locMng; 
    MyLocationOverlay myLoc; 
    GeoPoint p = null; 
    String s; 

    int lat = 0; 
    int lon = 0; 

    public void onCreate(Bundle b) { 
     super.onCreate(b); 

     setContentView(R.layout.savelocation); 

     textBox = (EditText) findViewById(R.id.edittext); 
     saveAs = (Button) findViewById(R.id.save); 

     loc = new MyLocationListener(); 

     locMng = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 

     locMng.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, loc); 

     saveAs.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       if (p == null) { 
        Toast.makeText(getBaseContext(), "Can not get GPS Signal", 
          Toast.LENGTH_LONG).show(); 
       } else { 

        Bundle b = new Bundle(); 
        b.putString(MyDatabaseHelper.KEY_TITLE, textBox.getText().toString()); 
        b.putInt(MyDatabaseHelper.KEY_LAT, p.getLatitudeE6()); 
        b.putInt(MyDatabaseHelper.KEY_LON, p.getLongitudeE6()); 
        Intent i = new Intent(); 
        i.putExtras(b); 
        setResult(RESULT_OK, i); 
        finish(); 

       } 
      } 
     }); 

    } 

puis j'attrape le résultat dans une autre activité.

protected void onActivityResult(int requestCode, int resultCode, 
      Intent intent) { 
     super.onActivityResult(requestCode, resultCode, intent); 
      Bundle b = intent.getExtras(); 


      switch(requestCode){ 

      case ACTIVITY_CREATE: 

       String title = b.getString(MyDatabaseHelper.KEY_TITLE); 
       int lat = b.getInt(MyDatabaseHelper.KEY_LAT); 
       int lon = b.getInt(MyDatabaseHelper.KEY_LON); 
       Toast.makeText(getBaseContext(), "" + lat , Toast.LENGTH_LONG).show(); 
       //mDbHelper.createFavorite(title,lat ,lon); 
       break; 


      } 

Ceci est mon code d'erreur.

05-17 19:42:46.027: ERROR/AndroidRuntime(398): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=0, result=-1, data=Intent { (has extras) }} to activity {com.state.park/com.state.park.Favorites}: java.lang.NullPointerException   
    05-17 19:42:46.027: ERROR/AndroidRuntime(398):  at com.state.park.Favorites.onActivityResult(Favorites.java:150) 
+0

Salut Cory quel est le code de votre classe Favoris Ligne 150 ??? – Jorgesys

Répondre

0

Vous devez vérifier que le résultat est en fait RESULT_OK dans votre méthode de onActivityResult avant d'essayer d'obtenir les extras de l'intention du résultat.