ausgelesene Daten aus SQLite DB ergeben keinen Sinn

  • Antworten:2
  • Bentwortet
Mario W
  • Forum-Beiträge: 9

13.09.2012, 12:02:25 via Website

Hallo zusammen, bin seit heute hier angemeldet, da ich alleine nicht weiterkomme.

Ich versuche mich seit gut 3-4 Wochen an der Apppogrammierung, da mein Chef mich damit beauftragt hat^^

Ich bin meines Erachtens auch scho nrecht weit gekommen. Ich werd mal kurz schildern, was ich vorhabe und wie weit ich bisher gekommen bin.

Also Grundidee ist Barcodes einzuscannen und die EAN und den Typ in eine DB zu schreiben und auch wieder abzurufen. (dies ist nur ein Ausschnitt von dem was die App am Ende können soll. Aber auch der relevante Teil)

Also ich bin soweit, dass die Daten in die db geschrieben werden und auch wieder ausgelesen werden. Hört sich alles schön an aber mein Problem ist, dass in der DB folgendes steht

ID BARCODE TYPE
1 1111 Test
2 1111 Test
.....

in meiner ListView hingegen steht sowas wie text.text.Entry@xxxxxxx

xxxxx= irgend eine nummer mit der ich nix anfangen kann.

Ich hab mir mehrere Tutorials angesehen und viel im internet gesucht. ich komme einfach nicht weiter.
Vielleicht weiß ja jemand was ich meine und stand schonmal vor dem gleichen Problem.

Wenn es ohne Code nicht gehen sollte dann werf doch hier mal ein blick auf mein einlesen in die db und auf mein rausholen:

1public class MySQLiteHelper extends SQLiteOpenHelper
2{
3...
4//Insert into Table
5public Entry createEntry(String barcode, String type)
6 {
7 SQLiteDatabase db = getWritableDatabase();
8 ContentValues values = new ContentValues();
9 values.put(KEY_BARCODE, barcode);
10 values.put(KEY_TYPE, type);
11
12
13 long insertId = db.insert(TABLE_SCAN, null,
14 values);
15
16 Cursor cursor = db.query(TABLE_SCAN, null, "ID = " + insertId , null, null, null, null);
17 cursor.moveToFirst();
18
19
20 return cursorToEntry(cursor);
21 }
22
23 //Table auslesen
24 protected List<Entry> getAllEntries()
25 {
26 SQLiteDatabase db = getWritableDatabase();
27 List<Entry> EntriesList = new ArrayList<Entry>();
28 EntriesList = new ArrayList<Entry>();
29
30 Cursor cursor = db.query(TABLE_SCAN, null, null, null, null, null, null);
31 cursor.moveToFirst();
32
33
34 if(cursor.getCount() == 0)
35 {
36 return EntriesList;
37 }
38
39
40 while(cursor.isAfterLast() == false)
41 {
42 Entry entry = cursorToEntry(cursor);
43 EntriesList.add(entry);
44 cursor.moveToNext();
45 }
46
47 cursor.close();
48 return EntriesList;
49 }
50
51
52
53 private Entry cursorToEntry(Cursor cursor)
54 {
55 Entry entry = new Entry();
56 entry.setId(cursor.getLong(0));
57 entry.setBarcode(cursor.getString(1));
58 entry.setType(cursor.getString(2));
59
60 return entry;
61 }
62}

und jetzt die Main in der das dann aufgerufen wird.

1public class Main extends Activity
2{
3 public void VerlaufClick(View view)
4 {
5 setContentView(R.layout.verlauf);
6
7 mainisopen=false;
8
9 List<Entry> ScanList = new ArrayList<Entry>();
10
11 try
12 {
13 ScanList = datasource.getAllEntries();
14 }
15 catch(Exception ex)
16 {
17 Toast.makeText(this, ex.toString(), Toast.LENGTH_SHORT).show();
18 }
19
20
21 final ListView lVerlauf = (ListView)findViewById(R.id.listView100);
22 ListAdapter adapterVerlauf = new ArrayAdapter<Entry>(Main.this, android.R.layout.simple_list_item_1, ScanList);
23 lVerlauf.setAdapter(adapterVerlauf);
24
25 }
26
27
28
29//um nicht ständig was einscannen zu müssen geb ich einfach die eingabe mal vor
30 public void ButtonKlick (View view)
31 {
32 //IntentIntegrator integrator = new IntentIntegrator(this);
33 //integrator.initiateScan();
34
35 String barcode ="1111";
36 String type = "test";
37 //barcode = scanResult.getContents();
38 //type = scanResult.getFormatName();
39
40 EditText etBarcode = (EditText) findViewById(R.id.textView1);
41 EditText etTyp = (EditText) findViewById(R.id.textView2);
42
43 etBarcode.setText(barcode);
44 etTyp.setText(type);
45
46 barcode = etBarcode.getText().toString();
47 type = etTyp.getText().toString();
48
49 datasource.createEntry(barcode, type);
50
51 }

Sollte noch was fehlen, dann gebt bescheid, dann reiche ich das natürlich noch nach :)

Danke schonmal im voraus

Gruß Mario

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

13.09.2012, 12:31:00 via Website

Was du da siehst ist die Ausgabe der toString() Methode zu deinem Objekt.
Entweder überschreibst Du die in deiner Entry Klasse und gibst dort aus was du brauchst,
oder du verwendest einen eigenen ListAdapter, mit einem passenden layout.xml für die Zeilen.

Antworten
Mario W
  • Forum-Beiträge: 9

13.09.2012, 13:07:42 via Website

Hi, nach ein bisschen rummprobieren funktioniert auch alles :)
Vielen Dank.

Für alle, die es interessieren sollte.

Ich habe noch eine Entry Klasse in der setter und getter Methoden liegen.
Am Ende muss noch folgendes eingefügt werden und dann funktioniert (zumindest bei mir) alles.

1public String toString()
2 {
3 return String.format("%d %s %s", id, Barcode, Type);
4 }

Antworten