2012-04-07 8 views
1

私はアンドロイドの開発に慣れています。私は2つのボタンがある簡単な経費管理プログラムを作っています。これらrecords.Hereを表示するレシーバ、日付と金額を記録し、他のボタンを保存するための1は私が書いたメインのコードの一部です:日付型のアンドロイドでsqliteのレコードを保存するには?

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> 

私のxmlファイルは日付&数のテキストフィールドを編集しています。 これはエラーを示しています:ContentValues型のput(String、String)メソッドは引数(String、Date)には適用できません。また、ContentValues型のput(String、String)メソッドは引数、Number)。保存する他の方法はありますか?

答えて

1

値を予想される形式に変換してから保存してください。

たとえば、数値を文字列に変換するString.ValueOf(数値)。

+0

ありがとうございました。私は実装しました:cv.put( "Dated"、String.valueOf(dated)); cv.put( "Amount"、String.valueOf(amount));エラーはありません。 –

+0

私は受け入れました。もう一度ありがとうございます。 :) –

関連する問題