Android Spinner適配器放入list配置的使用

本文是我從網上搜集而後本身整理到本身項目中的~~  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

相關文章
相關標籤/搜索