Array Adapter Spinner Array Adapter Array AdapterString adapter

  • Slides: 19
Download presentation
Array. Adapter & Spinner

Array. Adapter & Spinner

Array. Adapter (陣列接口) • Array. Adapter<String> adapter = new Array. Adapter<String>(arg 1, arg 3):

Array. Adapter (陣列接口) • Array. Adapter<String> adapter = new Array. Adapter<String>(arg 1, arg 3): 新增一 個陣列接口 – Arg 1: this activity (以this) – Arg 2: 接口樣式的識別符號 – Arg 3: 傳入接口的陣列

使用Array. Adapter建構一個下拉 式選單的view • Adapter. set. Drop. Down. View. Resource(int res) – Sets the

使用Array. Adapter建構一個下拉 式選單的view • Adapter. set. Drop. Down. View. Resource(int res) – Sets the layout resource to create the drop down views

範例 private String names[]={"stewart", "mary", "john"}; //宣告並初始化一個字串陣列 …. . @<? xml version="1. 0" encoding="utf-8"?

範例 private String names[]={"stewart", "mary", "john"}; //宣告並初始化一個字串陣列 …. . @<? xml version="1. 0" encoding="utf-8"? > <resources> <string name="hello">Hello World, Abc!</string> <string name="app_name">abc</string> <string name="students"> 學生列表</string> <string-array name="student_name"> <item>WHITE</item> <item>YELLOW</item> <item>14</item> <item>16</item> <item>18</item> </string-array> </resources> adapter_name. set. Drop. Down. View. Resource(android. R. layout. simple_spi nner_dropdown_item); //將字串陣列橋接至下拉式選單的view中

將陣列獨立成專案的資源 • 若字串陣列用於作為下拉式選單的「選 項」,那麼可以將選項直接獨立成為 string. xml所記載的「資源」,而不須成 為. java的程式碼之中 • res/valuse/string. xml @package a. b;

將陣列獨立成專案的資源 • 若字串陣列用於作為下拉式選單的「選 項」,那麼可以將選項直接獨立成為 string. xml所記載的「資源」,而不須成 為. java的程式碼之中 • res/valuse/string. xml @package a. b; import android. app. Activity; import android. graphics. Color; import android. os. Bundle; import android. widget. *; //與widget相關 import android. view. View; //與On. Click相關 public class Ab extends Activity { /** Called when the activity is first created. */ @Override public void on. Create(Bundle saved. Instance. State) { super. on. Create(saved. Instance. State); set. Content. View(R. layout. main); find. Views(); set. Adadpter(); set. Listeners(); } private Text. View txt; private Spinner sp; private String[] names={"white", "yellow", "14", "16", "18"}; private void find. Views(){ txt=(Text. View)find. View. By. Id(R. id. txt); sp=(Spinner)find. View. By. Id(R. id. sp); }

從專案「資源」中建立 Array. Adapter @private void set. Adadpter(){ Array. Adapter<String> adapter=new Array. Adapter<String>(this, android. R.

從專案「資源」中建立 Array. Adapter @private void set. Adadpter(){ Array. Adapter<String> adapter=new Array. Adapter<String>(this, android. R. layout. simple_spinner_item, names); adapter. set. Drop. Down. View. Resource(android. R. layout. simple_spinner_dropdown_item); sp. set. Adapter(adapter); } private void set. Listeners(){ sp. set. On. Item. Selected. Listener(get. Name); } private Spinner. On. Item. Selected. Listener get. Name=new Spinner. On. Item. Selected. Listener(){ public void on. Item. Selected(Adapter. View<? > adapter. View, View v, int position, long id) { txt. set. Text("Hello, color is " + sp. get. Selected. Item(). to. String()); switch(sp. get. Selected. Item. Position()){ Array. Adapter<Char. Sequence> adapter_name=Array. Adapter. create. From. Resource(this, R. array. students, android. R. layout. simple_spinner_item);

main. xml中新增spinner • Spinner – 下拉式選單介面元件 case 0: txt. set. Text. Color(Color. WHITE); break;

main. xml中新增spinner • Spinner – 下拉式選單介面元件 case 0: txt. set. Text. Color(Color. WHITE); break; case 1: txt. set. Text. Color(Color. YELLOW); break; case 2: txt. set. Text. Size(14); break; case 3: txt. set. Text. Size(16); break; case 4: txt. set. Text. Size(18); break; } } public void on. Nothing. Selected(Adapter. View<? > arg 0) { } }; – draw. Selector. On. Top (必須): } • 在多層選單下,spinner是否顯示於其他選單的上層,通 常不重要 – prompt: • spinner的標題。該屬性不接受string,必須透過外部資 源

android: prompt • 指定下拉式選單標題時,必須在外部資 源string. xml中先制定一個<string>資源, 再指定到android: prompt <resources> … <string name="color_prompt">字串前景顏色</string> … </resources>

android: prompt • 指定下拉式選單標題時,必須在外部資 源string. xml中先制定一個<string>資源, 再指定到android: prompt <resources> … <string name="color_prompt">字串前景顏色</string> … </resources>

新增外部字串資源 • Res/values/string. xml @<? xml version="1. 0" encoding="utf-8"? > <resources> <string name="hello">Hello World,

新增外部字串資源 • Res/values/string. xml @<? xml version="1. 0" encoding="utf-8"? > <resources> <string name="hello">Hello World, Test!</string> <string name="app_name">test</string> <string name="students">HELLO</string> <string-array name="student_name"></string-array> </resources>

設計spinner元件 • main. xml: @<? xml version="1. 0" encoding="utf-8"? > <Linear. Layout xmlns: android="http:

設計spinner元件 • main. xml: @<? xml version="1. 0" encoding="utf-8"? > <Linear. Layout xmlns: android="http: //schemas. android. com/apk/res/android" android: orientation="vertical" android: layout_width="fill_parent" android: layout_height="fill_parent" > <Text. View android: layout_width="fill_parent" android: layout_height="wrap_content" android: text="選擇" /> <Spinner android: id="@+id/sp" android: layout_width="fill_parent" android: layout_height="wrap_content" android: draw. Selector. On. Top="true" android: prompt="@string/students" /> <Text. View android: id="@+id/txt" android: layout_width="fill_parent" android: layout_height="wrap_content" android: text="@string/hello" /> <Button android: id="@+id/btn" android: layout_width="fill_parent"

宣告並設定Array. Adapter private Spinner field_name; private Text. View txt. Display; private void find. Views(){

宣告並設定Array. Adapter private Spinner field_name; private Text. View txt. Display; private void find. Views(){ field_name=(Spinner)find. View. By. Id(R. id. fore. Color); txt. Display=(Text. View)find. View. By. Id(R. id. txt. Display); Array. Adapter<Char. Sequence> adapter_name=Array. Adapter. create. From. Resource(this, R. array. student_name, android. R. layout. simple_spinner_item); adapter_name. set. Drop. Down. View. Resource(android. R. layout. simple_spi nner_dropdown_item); field_name. set. Adapter(adapter_name); } //此時可以開啟模擬器欣賞下拉式選單的外觀,但是還未完成點選後的動作

Spinner的「動作」 • 下拉式選單的動作不外乎就是「點選」 選項 – on. Item. Selected() – on. Nothing. Selected(): 通常不實作 •

Spinner的「動作」 • 下拉式選單的動作不外乎就是「點選」 選項 – on. Item. Selected() – on. Nothing. Selected(): 通常不實作 • 隸屬於spinner. on. Item. Selected. Listener – Spinner. set. On. Item. Selected. Listener()

修改set. Listeners() @package a. b; import android. R. string; import android. app. Activity; import

修改set. Listeners() @package a. b; import android. R. string; import android. app. Activity; import android. content. Intent; import android. graphics. Color; import android. net. Uri; import android. os. Bundle; import android. view. View. On. Click. Listener; import android. widget. Adapter. View; import android. widget. Array. Adapter; import android. widget. Button; import android. widget. Spinner; import android. widget. Text. View; public class Ab extends Activity { /** Called when the activity is first created. */ @Override public void on. Create(Bundle saved. Instance. State) { super. on. Create(saved. Instance. State); set. Content. View(R. layout. main); find. Views(); Array. Adapter<String> adapter_name=new Array. Adapter<String>(this, android. R. layout. simple_spinner_item, names); //Array. Adapter<Char. Sequence>adapter_name=Array. Adapter. create. From. Resource(this, R. array. student_name, android. R. layout. simple_spinner_item); adapter_name. set. Drop. Down. View. Resource( android. R. layout. simple_spinner_dropdown_item); spn. set. Adapter(adapter_name); set. Listeners();

新增一個On. Item. Selected. Listener private Spinner. On. Item. Selected. Listener get. Name=new Spinner. On.

新增一個On. Item. Selected. Listener private Spinner. On. Item. Selected. Listener get. Name=new Spinner. On. Item. Selected. Listener(){ public void on. Item. Selected(Adapter. View<? > adapter. View, View v, int position, long id) { txt. Display. set. Text("Hello, my name is " + adapter. View. get. Selected. Item(). to. String()); } public void onpackage a. b;

Get selected item and position • Spinner可以取得所點選的「選項」以及 選項在列表中的位置號碼(以 0開始) –. get. Selected. Item(): 傳回選項

Get selected item and position • Spinner可以取得所點選的「選項」以及 選項在列表中的位置號碼(以 0開始) –. get. Selected. Item(): 傳回選項 –. get. Selected. Item. Position(): 傳回選項編號