2017-12-05 10 views
0

問題が発生しました。私は予算アプリケーションを構築しているので、私は 'Year'と 'Month'という2つのクラスを作成しましたコンストラクタ内でデータベースに保存する

Yearの私のコンストラクタが呼び出されたとき、私はMonthオブジェクトを12個作成してSQLiteデータベースに追加します。

データベースクラスのインスタンスをコンストラクタのパラメータとして設定しました。

年クラス:

public class Year implements Serializable { 

private int id; 
private int year; 
private Month[] months; 
private List<Category> categories; 

public Year(int year, MyDBHandler mdb) { 
    this.id = mdb.getYearID(); 
    this.year = year; 
    for(int i = 0; i > 12; i ++){ 
     Month mon = new Month(mdb.getMonthID(), i, this); 
     mdb.addMonth(mon); 
     months[i] = mon; 
    } 
    mdb.close(); 
} 

}

月クラス:

public class Month implements Serializable{ 
private int id; 
private String name; 
private int number; 
private Year year; 
private List<Entry> entries; 
private List<Category> categories; 


public Month(int id, int nr, Year year) { 
    this.id = id; 
    String [] months = {"January", "February", "March", "April", "May", "June", "July", "August", "Septemper", "October", "November", "December"}; 
    this.name = months[nr]; 
    this.number = nr; 
    this.year = year; 
    categories = year.getCategories(); 
} 

}

私DbHandlerクラスからの関連するメソッド

public void addMonth(Month month){ 
    ContentValues values = new ContentValues(); 
    values.put(COLUMN_MONTH_ID, month.getId()); 
    values.put(COLUMN_MONTH_NUMBER, month.getNumber()); 
    values.put(COLUMN_MONTH_YEAR_ID, month.getYear().getId()); 
    SQLiteDatabase db = getWritableDatabase(); 
    db.insert(TABLE_MONTH, null, values); 
} 

public ArrayList<Month> getMonths() { 
    ArrayList<Month> list = new ArrayList<Month>(); 
    SQLiteDatabase db = getWritableDatabase(); 
    String query = "SELECT * FROM " + TABLE_MONTH + " WHERE 1"; 

    Cursor c = db.rawQuery(query, null); 
    c.moveToFirst(); 

    while (!c.isAfterLast()) { 
     if (c.getString(c.getColumnIndex(COLUMN_MONTH_NUMBER)) != null) { 
      int x1 = c.getInt(c.getColumnIndex("_id")); 
      int x2 = c.getInt(c.getColumnIndex("nr")); 

      Month month = new Month(x1, x2, null); 
      list.add(month); 
      c.moveToNext(); 
     } 
    } 
    c.close(); 
    db.close(); 
    return list; 
} 

問題は、このコメントのために、より適しているだろうが、私は担当者を持っていないので、私は、データベースへの年を作成呼び出すことができるにもかかわらず、私のデータベースは何ヶ

答えて

1

が含まれていないということです。

for(int i = 0; i > 12; i ++) 

は神ああ、私はとても恥ずかしい

for (int i = 0; i < 12; i++) 
+0

する必要があります... – Rassamdul

関連する問題