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