2012-04-07 12 views
1

Ich bin neu in Android-Entwicklung. Ich mache ein einfaches Ausgabenverwaltungsprogramm, in dem es 2 Knöpfe gibt; man den Empfänger, Datum und Betrag Aufzeichnungen und andere Taste speichern diese records.Here ist der Teil des Haupt-Code zu sehen, die ich schrieb:Wie speichert man Datensätze in SQLite in Android von Datumstyp?

public class database { 
public static final String DBNAME = "dbexpense"; 
SQLiteDatabase db; 
DBHandler handler; 

public database(Context ctx) { 
    handler = new DBHandler(ctx); 
} 

class DBHandler extends SQLiteOpenHelper { 
    public DBHandler(Context ctx) { 
     super(ctx, DBNAME, null, 1); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL("Create table expenses(id integer primary key autoincrement,from text,dated date, amount number);"); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL("drop table if exists expenses"); 
     onCreate(db); 
    } 
} 

public void open() { 
    db = handler.getWritableDatabase(); 
} 

public void close() { 
    db.close(); 
} 
public boolean saveRecord(String from, Date dated, Number amount) 
{ 
    ContentValues cv=new ContentValues(); 
    cv.put("From", from); 
    cv.put("Dated", dated); 
    cv.put("Amount", amount); 

    return db.insert("expenses", "", cv)>0; 
    } 

<EditText 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:id="@+id/editText2" 
android:inputType="date"> 
</EditText> 
<EditText 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:id="@+id/editText3" 
android:inputType="number"></EditText> 

Meine XML-Datei bearbeiten Textfelder für Datum & Nummer. Dies zeigt einen Fehler: Die Methode put (String, String) im Typ ContentValues ​​ist nicht anwendbar für die Argumente (String, Date) und Die Methode put (String, String) im Typ ContentValues ​​ist nicht anwendbar für die Argumente (String , Nummer). Gibt es eine andere Möglichkeit zu sparen?

Antwort

1

Konvertieren Sie Ihre Werte in das erwartete Format, bevor Sie versuchen, sie zu speichern.

Zum Beispiel String.ValueOf (Zahl) um eine Zahl in eine Zeichenkette umzuwandeln.

+0

Vielen Dank. Ich habe implementiert: cv.put ("Dated", String.valueOf (datiert)); cv.put ("Betrag", String.valueOf (Betrag)); und es gibt keinen Fehler. –

+0

Ich habe akzeptiert. Vielen Dank noch mal. :) –

Verwandte Themen