本文是我從網上搜集而後本身整理到本身項目中的~~ java
Spinner 控件在使用ArrayAdapter的時候不免有時不想放入Array數組,前幾天我這邊往spinner控件中放入了list,可放入適配器的時候總是報錯,解決方案以下:從方法裏摘抄的,無方法名 諒解~android
//方法的變量聲明 private String[] reason; Hashtable<String,Integer> hnameids; //list中獲取的是id-name的數據 List<mLeaveCategory> list = parseResult(result); //這裏的ParseResult方法是對從數據庫查詢出的數據進行規整 hnameids=new Hashtable<String,Integer>(); reason = new String[list.size()]; for (int i = 0; i < list.size(); i++) { //這裏是把list中的id-name讀取出來存入hashtable中了 hnameids.put(list.get(i).getCategoryName(),list.get(i).getCategoryID()); } ArrayAdapter adapter = new ArrayAdapter(EmployeeLeave.this,android.R.layout.select_dialog_item , list); spinnerReason.setAdapter(adapter);
下面有需求啦~點擊spinner中顯示的某一項的時候須要把某項對應的id拿到。數據庫
//這些都是全局變量,方便理解我拿上來了~ private Spinner spinnerReason; private int categoryID; spinnerReason=(Spinner)findViewById(R.id.spinnerReason); spinnerReason.setOnItemSelectedListener(new OnItemSelectedListener() { //當選中某一項的時候,而後hashtable就派上用場了,根據選中的名字,把id賦給全局變量categoryID @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { String date = parent.getItemAtPosition(position).toString(); categoryID = hnameids.get(date); } @Override public void onNothingSelected(AdapterView<?> arg0) { } });
好了,需求達到了,選中某一項而後可獲得選中當前項的ID~~數組
整理不易,也請你們多提提意見ide