2011年10月19日 星期三

Android學習_以Cursor為下拉式選單(Spinner)的來源,Text與Value取得方式

若是程式裡面運用到下拉式選單(Spinner),來源大概有三種:
1. 寫死在程式裡面
2. 寫在XML檔案裡面
3. 放在SQLite裡面(放預設值出問題請看本篇)

如果希望程式比較動態,通常我們會選擇放到SQLite裡面,然後做一個頁面讓使用者可以自行增減項目,所以我們可以由SQLite的查詢取得Cursor,放入也相當簡單:

if (cursor.getCount()>0)
{
cursor.moveToFirst();
SimpleCursorAdapter adapter = new SimpleCursorAdapter(context, android.R.layout.simple_spinner_item,cursor, new String[] { "ItemName" }, new int[] {android.R.id.text1});
spinner.setAdapter(adapter);
}

*以上使用Android預設的樣式simple_spinner_item來顯示下拉式選單

放進去以後,馬上面臨的下一個問題是,下拉式選單中可能需要Text與Value,也就是一個是顯示的內容,一個是程式要用的對應碼。

通常該對應碼,都會儲存在SQLite的某一個欄位中,所以思維應該是如何去取得被選項目的cursor。

有兩個時候必須要取得:
1. 點選spinner的時候
由第一個傳回的參數AdapterView轉為Cursor:

private Spinner.OnItemSelectedListener spinner_AddReturn_CaseType1_Selected = new Spinner.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView arg0, View arg1, int arg2,long arg3) {
Cursor cursor = (Cursor) arg0.getSelectedItem();
String SelectItemCode = cursor.getString(cursor.getColumnIndex("ItemCode"));
}
};


2. 要儲存至某地的時候
直接取得後做轉換:

Cursor cursor_PrjIDType = (Cursor) spinner_AddReturn_PrjIDType.getSelectedItem();


取得Cursor後,就可以很輕鬆的讀取任何你希望取得的內容。

1 則留言:

Unknown 提到...

小弟剛學android
請問cursor如何使用 還有PrjIDType是您自己設的方法嗎
那其內容是什麼 那又該放在哪邊使用

張貼留言