自訂Spinner得誤區

來源:互聯網
上載者:User

做android開發一段時間後,大家基本上都會不約而同的總結出一條一樣的android控制項使用心得,資料  ---->adapter------> 控制項 ,萬年不變的一個流程。典型代表ListView

在做Spinner的時候想傳入一個List<AddPerson> 列表當做資料。但是ArrayAdapter並不能直接使用一個類作為資料來源,按照以往的習慣自訂一個adapter以後塞入spinner,

結果Spinner的樣式和下拉式清單的樣式是一樣這並不能實現我的需求,

從網上查過資料後發現原來spinner裡面整合了兩個ListVIew,不點擊Spinner得時候有一個ListView只顯示一行,點擊之後,另一個ListView顯示全部資料,所以這樣

要給Spinner傳入兩個布局

剛好系統提供的ArrayAdapter有這樣的功能

adapter2 = new ArrayAdapter<AddPerson>(this, android.R.layout.simple_spinner_item, android.R.id.text1, sumList) {@Overridepublic View getView(int position, View convertView, ViewGroup parent) {if (convertView == null) {AddPerson item = getItem(position);convertView = inflater.inflate(android.R.layout.simple_spinner_item, null);TextView textView = (TextView) convertView.findViewById(android.R.id.text1);if (item != null) {textView.setText(item.name);}}return convertView;}@Overridepublic View getDropDownView(int position, View convertView, ViewGroup parent) {AddPerson item = getItem(position);if (convertView == null) {convertView = inflater.inflate(android.R.layout.simple_spinner_dropdown_item, null);TextView textView = (TextView) convertView.findViewById(android.R.id.text1);if (item != null) {textView.setText(getItem(position).name);}convertView.setTag(textView);} else {((TextView) convertView.getTag()).setText(item.name);}return convertView;}@Overridepublic AddPerson getItem(int position) {if (sumList != null && sumList.size() > 0) {return sumList.get(position);}return null;}@Overridepublic int getCount() {if (sumList != null && sumList.size() > 0) {return sumList.size();}return 0;}};

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.