Справка по базе данных SQLite - PullRequest
0 голосов
/ 18 мая 2011

У меня проблемы с созданием таблицы sql. У меня есть просмотр списка, в котором должны храниться заголовки и другое действие, которое захватывает информацию и отправляет ее на ActiveResult.

Это метод createFavorite в классе 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);
    }

и здесь я беру информацию и передаю ее как связку.

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)

1 Ответ

0 голосов
/ 18 мая 2011

Вы должны проверить, что результат на самом деле RESULT_OK в вашем методе onActivityResult, прежде чем пытаться получить дополнительные значения из намерения результата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...