spinner中ArrayAdapter中傳遞對(duì)象的用法
描述:
一般情況下,我們會(huì)用ArrayList<String>來填充Spinner中的Adapter。
但有時(shí),我們需要傳遞一些對(duì)象,比如選擇用戶的時(shí)候,顯示的是用戶名,但我們要處理的是用戶ID。
這時(shí)侯如果用ArrayList<String>,則不能滿足我們的需求,因?yàn)?,ID沒地方儲(chǔ)存。
查閱API,發(fā)現(xiàn)ArrayAdapter的類聲明為ArrayAdapter<T>,說明,我們可以把T替換成我們想要的對(duì)象。
于是我們可以構(gòu)建如下的語句:
ArrayList<User> users = new ArrayList<User>();
android.R.layout.simple_spinner_item,
users
);
但這時(shí)有會(huì)遇到一個(gè)問題,既然你傳遞過來的是一個(gè)obj,但我的要求是:顯示用name顯示,處理用id,這個(gè)怎么實(shí)現(xiàn)咧。
答案是,重寫User的toString()方法,只返回name。這樣就能滿足我們的需求啦。當(dāng)然,這只是一種簡(jiǎn)單的做法,一般情況下,還有另一種寫法,就是重寫adapter。
一般情況下,我們會(huì)用ArrayList<String>來填充Spinner中的Adapter。
但有時(shí),我們需要傳遞一些對(duì)象,比如選擇用戶的時(shí)候,顯示的是用戶名,但我們要處理的是用戶ID。
這時(shí)侯如果用ArrayList<String>,則不能滿足我們的需求,因?yàn)?,ID沒地方儲(chǔ)存。
查閱API,發(fā)現(xiàn)ArrayAdapter的類聲明為ArrayAdapter<T>,說明,我們可以把T替換成我們想要的對(duì)象。
于是我們可以構(gòu)建如下的語句:
ArrayList<User> users = new ArrayList<User>();
ArrayAdapter<Group> adapter = new ArrayAdapter<Group>(
this,android.R.layout.simple_spinner_item,
users
);
但這時(shí)有會(huì)遇到一個(gè)問題,既然你傳遞過來的是一個(gè)obj,但我的要求是:顯示用name顯示,處理用id,這個(gè)怎么實(shí)現(xiàn)咧。
答案是,重寫User的toString()方法,只返回name。這樣就能滿足我們的需求啦。
posted on 2011-08-10 16:57 小一敗涂地 閱讀(3856) 評(píng)論(0) 編輯 收藏 所屬分類: android+移動(dòng)開發(fā)