Spinner显示数月的数月

时间:2013-10-04 12:35:29

标签: android sql eclipse spinner

我正在尝试创建一个动态加载选项的微调器。我希望微调器显示不同的月份,但是如果我有许多这种情况怎么办?

看看我的例子:

每次用户使用它时,他都会创建一个新日期,因此一个月内有很多天,我只希望在旋转器中显示一个:

日期看起来像这样

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

我想从我的sql数据库创建月份。

如何使用10月份在我的微调器中创建一个选项?

我希望这听起来不会令人困惑。

感谢您的帮助。

这是我的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;
}


}

1 个答案:

答案 0 :(得分:1)

您将日期存储为String,这是错误的。如果您将其作为inits int year, int month, int day存储到数据库中,那么您可以选择您感兴趣的行。例如,您可以检索month=may等的每一行。我知道你可能已经预料到了一些示例代码,但是你的问题并不是很特别,所以我没有提供任何代码。