SQLiteDatabase dbm = this.getWritableDatabase(); рекурсивный

Помогите! Я передаю данные геолокации с Android в базу данных. Выдает сообщение об ошибке. Ошибка: (45, 46) ошибка: не удается найти метод символа getWritableDatabase (). Помогите! введите описание изображения здесь

public class AndroidGPSTrackingActivity extends Activity {

    Button btnShowLocation;

    // GPSTracker class
    GPSTracker gps;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        btnShowLocation.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // create class object
                gps = new GPSTracker(AndroidGPSTrackingActivity.this);

                // check if GPS enabled
                if(gps.canGetLocation()){

                    double latitude = gps.getLatitude();
                    double longitude = gps.getLongitude();
                    SQLiteDatabase dbm = this.getWritableDatabase();
                    ContentValues cv = new ContentValues();


                    cv.put("LAT_G",
                            gps.getLatitude());

                    cv.put("LANG",  gps.getLongitude());

                    boolean result = dbm.insert("table name", cv);


                    Toast.makeText(getApplicationContext(), "Your Location is - \nLat: " + latitude + "\nLong: " + longitude, Toast.LENGTH_LONG).show();
                }else{
                    // can't get location
                    // GPS or Network is not enabled
                    // Ask user to enable GPS/network in settings
                    gps.showSettingsAlert();
                } 
     }  }); }  }

1 ответ

getWritableDatabase() это метод в SQLiteOpenHelper, this в вашем коде относится к View.OnClickListener Экземпляр внутреннего класса, который не является SQLiteOpenHelper и не имеет такого метода в этом.

Вам нужно будет реализовать свой собственный класс расширения SQLiteOpenHelper, создать его экземпляр, а затем вызвать getWritableDatabase() в случае, чтобы получить SQLiteDatabase работать с.

Другие вопросы по тегам