2011-05-17 94 views
0

我在創建sql表時遇到問題。我有一個應該存儲標題的列表視圖和另一個抓取信息並將其發送到ActivityResult的活動。SQLite數據庫幫助

這是MyDatabaseHelper類中的createFavorite方法。

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); 
    } 

這是我獲取信息並將其作爲一個包傳遞。

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(); 

       } 
      } 
     }); 

    } 

然後我抓住結果在另一個活動。

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; 


      } 

這是我的錯誤代碼。

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

嗨科裏什麼是你的班的代碼收藏夾行150? – Jorgesys 2011-05-18 00:02:27

回答

0

您應該檢查結果居然是RESULT_OK在onActivityResult方法試圖從結果意圖演員之前。