Forum » Programiranje » Android, SQLite - brisanje vrstice iz baze
Android, SQLite - brisanje vrstice iz baze
SkIDiver ::
V tabelo baze npr zapišem vnose;
Nato zbrišem vrstico tretji. Če sedaj iz seznama izberem (vsebino tabele preberem v seznam) sesti mi vrne nazaj peti (torej dejansko bere peti vnos iz tabele namesto sesti). Če izberem peti mi vrne cetrti. Če izberem sedaj cetrti pa pride do napake pri izvajanju aplikacije. Če izberem drugi mi odpre drugi in če izberem prvi mi odpre prvi.
Pisanje v bazo
Branje iz baze
Brisanje iz baze
Seznam vnosov v bazo in listener na podlagi katerega berem izbrani zapis
Tukaj se zavedam, da ni primerna rešitev uporaba indexa arg3, vendar nimam ideje kako naj drugače dobim vrednost po kateri bi v bazi iskal vnos.
Hvala že vnaprej.
prvi drugi tretji cetrti peti sesti
Nato zbrišem vrstico tretji. Če sedaj iz seznama izberem (vsebino tabele preberem v seznam) sesti mi vrne nazaj peti (torej dejansko bere peti vnos iz tabele namesto sesti). Če izberem peti mi vrne cetrti. Če izberem sedaj cetrti pa pride do napake pri izvajanju aplikacije. Če izberem drugi mi odpre drugi in če izberem prvi mi odpre prvi.
Pisanje v bazo
public long insertTitle(String title, String content) { ContentValues initialValues = new ContentValues(); initialValues.put(KEY_TITLE, title); initialValues.put(KEY_CONTENT, content); return db.insert(DATABASE_TABLE, null, initialValues); }
Branje iz baze
public Cursor getTitle(long rowId) throws SQLException { Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] { KEY_ROWID, KEY_TITLE, KEY_CONTENT }, KEY_ROWID + "=" + rowId, null, null, null, null, null); if (mCursor != null) { mCursor.moveToFirst(); } return mCursor; }
Brisanje iz baze
public boolean deleteTitle(long rowId) { return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0; }
Seznam vnosov v bazo in listener na podlagi katerega berem izbrani zapis
ArrayList<String> al = new ArrayList<String>(); ListView lv; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); db = new DBAdapter(this); lv = (ListView) findViewById(R.id.ListView01); lv.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { openNote(arg3 + 1); } }); } public void dbContent() { db.open(); c = db.getAllTitles(); if (c.moveToFirst()) { do { al.add(c.getString(0) + " " + c.getString(1)); } while (c.moveToNext()); } lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, al)); db.close(); }
Tukaj se zavedam, da ni primerna rešitev uporaba indexa arg3, vendar nimam ideje kako naj drugače dobim vrednost po kateri bi v bazi iskal vnos.
Hvala že vnaprej.
SkIDiver ::
OK sedaj sem prišel do zaključka kaj je narobe ne vem pa na kakšen način rešit težavo.
Iz ListView poberem index oz. mesto na katerem se nahaja izbrani zapis in grem oodpirat vnos z index+1 iz tabele.
Potem pa iz tabele pobrišem eno vrstico, recimo tretjo. Seznam ListView se mi osveži in imam prikazane vse vnose razen izbrisanega. Problem sedaj nastane, če jaz izberem iz seznama tretji vnos, ki ima iz ListView index = 2 in temu dodam +1 (ker vrstice v tabeli gredo od 1 dalje) in grem s 3 iskat zapis v bazo se aplikacija zruši (ker ne lovim napake), ker sem tretjo vrstico pobrisal.
Sedaj pa me muči kako hranit nek indeks poleg ListView-a, da bom ob izbiri iz njega klical pravilno vrstico iz baze. Kakšna ideja?
PS: Obstaja pri nas kak android development forum sicer?
Iz ListView poberem index oz. mesto na katerem se nahaja izbrani zapis in grem oodpirat vnos z index+1 iz tabele.
Potem pa iz tabele pobrišem eno vrstico, recimo tretjo. Seznam ListView se mi osveži in imam prikazane vse vnose razen izbrisanega. Problem sedaj nastane, če jaz izberem iz seznama tretji vnos, ki ima iz ListView index = 2 in temu dodam +1 (ker vrstice v tabeli gredo od 1 dalje) in grem s 3 iskat zapis v bazo se aplikacija zruši (ker ne lovim napake), ker sem tretjo vrstico pobrisal.
Sedaj pa me muči kako hranit nek indeks poleg ListView-a, da bom ob izbiri iz njega klical pravilno vrstico iz baze. Kakšna ideja?
PS: Obstaja pri nas kak android development forum sicer?
revvs ::
Napiši svoj listview, ker ko ti izbrišeš potem se nastavi na -1, kar je pa seveda error, poleg tega pa se začne z 0 in ne z 1, se pravi taka je logika večino programskih jezikov.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Android] Bluetooth aplikacijaOddelek: Programiranje | 1089 (952) | marjan_h |
» | C# WPF nalaganje info. iz XML dokumentaOddelek: Programiranje | 1028 (848) | MrStein |
» | [Android]Cudno obnasanje aplikacije in emulatorjaOddelek: Programiranje | 1309 (1138) | KernelPanic |
» | Qt Designer -> KDevelop C++ ErrorOddelek: Programiranje | 2121 (1651) | 'FireSTORM' |
» | C#, Dodajanje podatkov v Arraylist z GumbomOddelek: Programiranje | 2282 (2121) | Beezgetz |