Android, problem z SQLite

0

Witam, problem jest następujący:

próbuje sobie zrobić activity, gdzie po kliknięciu w button będzie dodawana do bazy danych zawartość formularza. Niby proste, ale:

  1. Bazę tworze (lub sprawdzam, czy istnieje) już w metodzie onCreate
  2. Egzekucję SQLa wykonuje już w metodzie onClick

i teraz tak: w onclick wywala błąd, że baza musi być final. Gdy dodam jej final, to w onCreate (przy tworzeniu) wywala błąd, że baza nie może być final.

Ktoś ma jakiś pomysł czym może to być spowodowane? Załączam poniżej kod:

public class Main extends Activity {

	Button dodaj;
	Button zobacz;
	EditText wpisz;
	private final String DB_NAME = "mojaBaza";
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		SQLiteDatabase baza = null;
        
        try{        
         
         baza = this.openOrCreateDatabase(DB_NAME, MODE_PRIVATE, null);
         baza.execSQL("CREATE TABLE IF NOT EXISTS Samochody (Marka VARCHAR)");
         
        } catch(SQLException e) {
        	Log.e(getClass().getSimpleName(), "Nie mozna utworzyc, badz otworzyc bazy danych"); }
  
		dodaj = (Button) findViewById(R.id.button1);
		zobacz = (Button) findViewById(R.id.button2);
		wpisz = (EditText) findViewById(R.id.e1);
	
        dodaj.setOnClickListener(new OnClickListener() {
        	 
            public void onClick(View v) {
            		
            		baza.execSQL("INSERT INTO Samochody  Values('" + wpisz.getText().toString() + "');");
            	
            }
        });

        
	}
}
0

zapomniałem tą egzekucję w onClick opatrzyć mianem wyjątku, ale nic to nie zmienia...

0

przenieś deklaracje "SQLiteDatabase baza = null;" tuż pod "private final String DB_NAME = "mojaBaza";" i myślę że będzie śmigać :)

0

Działa, dziękować serdecznie :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1