2013-10-04 63 views
-1

我正在嘗試使一個微調器,它將動態加載選項。我希望微調器能夠展示不同的月份,但是如果我有很多這種類型的東西呢?Spinner顯示數據庫的月份

看我的例子:

每次用戶使用該他做一個新的日期,因此有一個月多天,我想只有一個在微調顯示:

的日期看起來像這樣

2013-10-04 
2013-10-04 
2013-10-02 

我想從我的sql數據庫中創建月份。

如何在十月份在我的微調器中創建一個選項?

我希望這聽起來不容易混淆。

感謝您的幫助。

這是我的Sql數據庫。

public class KilometerSQL { 

public static final String KEY_ROWID = "date"; 
public static final String KEY_KILOMETER = "kilometer"; 
public static final String KEY_LOCATIONS = "locations"; 

private static final String DATABASE_NAME = "Kilometerdb"; 
private static final String DATABASE_TABLE = "kilometertable"; 
private static final int DATABASE_VERSION = 1; 

private DbHelper ourHelper; 
private final Context ourContext; 
private SQLiteDatabase ourDatabase; 

private static class DbHelper extends SQLiteOpenHelper{ 

    public DbHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     // TODO Auto-generated method stub 
     db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + 
       KEY_ROWID + " TEXT NOT NULL, " + 
       KEY_KILOMETER + " INTEGER, " + 
       KEY_LOCATIONS + " TEXT NOT NULL);" 


       ); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     // TODO Auto-generated method stub 
     db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE); 
     onCreate(db); 
    } 


    } 

public KilometerSQL (Context c){ 
    ourContext = c; 
} 

public KilometerSQL open(){ 
    ourHelper = new DbHelper(ourContext); 
    ourDatabase = ourHelper.getWritableDatabase(); 
    return this; 
} 

public void close(){ 
    ourHelper.close(); 
} 

public long createEntry(String date, int kortekm, String locations) { 
    // TODO Auto-generated method stub 
    ContentValues cv = new ContentValues(); 
    cv.put(KEY_ROWID, date); 
    cv.put(KEY_KILOMETER, kortekm); 
    cv.put(KEY_LOCATIONS, locations); 
    return ourDatabase.insert(DATABASE_TABLE, null, cv); 
} 

public String getData() { 
    // TODO Auto-generated method stub 
    String [] columns = new String []{ KEY_ROWID, KEY_KILOMETER, KEY_LOCATIONS}; 
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null); 
    String result = ""; 

    int iDate = c.getColumnIndex(KEY_ROWID); 
    int iKilometer = c.getColumnIndex(KEY_KILOMETER); 
    int iLocations = c.getColumnIndex(KEY_LOCATIONS); 

    for (c.moveToFirst();!c.isAfterLast();c.moveToNext()){ 
     result = result + c.getString(iDate) + " " + c.getString(iKilometer) + " " + c.getString(iLocations) + "\n"; 
    } 

    return result; 
} 


} 
+0

我知道這可能聽起來微不足道,爲什麼你不使用Android的內置'DatePicker'? :http://developer.android.com/guide/topics/ui/controls/pickers.html – Kristopher

+0

嗯..我不認爲我可以使用它.. 因爲當用戶選擇了一個月,他會能夠看到他跑過的所有公里,我希望每次都能顯示出來,他出去跑步。 – Niller

+0

好吧,現在我想我明白你的意思了。請顯示您的數據庫創建語句,讓我知道如何存儲這些日期。 – Kristopher

回答

1

您將日期存儲爲String,這是錯誤的。如果你想把它存儲到你的數據庫中,那麼你可以選擇你感興趣的行。例如,你可以檢索每行month=may等等。我知道你可能已經預期了一些示例代碼,但是你的問題不是非常特殊的,所以我沒有提供任何代碼。

+0

太好了。很高興知道......;)這是否意味着我應該創建3個不同的KEYS,年,月和日,而不是我稱之爲'KEY_ID'的那個? – Niller

+1

是的,我還會添加'_id整數主鍵AUTOINCREMENT',您可能會在將來需要'ListView'。 – Kristopher

+0

好的。我會那樣做的。我有一個問題,現在我正在使用edittext來保存日期,我應該使用日期選擇器嗎?或者,我如何儲存一天,一月和一年的單獨? – Niller