2013-05-05 38 views
2

我試圖創建一個空選擇的微調,但問題是我從SQLite DataBase加載我的微調。這裏的代碼我使用加載微調:Spinner從SQLite DataBase填充空選擇

public void loadSpinnerDataRegion() { 
     DataBaseHelper myDbHelper = new DataBaseHelper(this); 
     myDbHelper = new DataBaseHelper(this); 

      try { 

       myDbHelper.createDataBase(); 

      } catch (IOException ioe) { 

       throw new Error("Unable to create database"); 

      } 

      try { 

       myDbHelper.openDataBase(); 


      }catch(SQLException sqle){ 

       throw sqle; 

      } 

      // Spinner Drop down elements 

      RegionList=myDbHelper.getAllRegion(); 
      // Creating adapter for spinner 
      ArrayAdapter<String>dataAdapter = new ArrayAdapter<String>(this, 
         android.R.layout.simple_spinner_item,RegionList); 
       // Drop down layout style - list view with radio button 
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

       // attaching data adapter to spinner 
       spinner2.setAdapter(dataAdapter); 
       } 

回答

1

試試這個

RegionList.add(""); 
ArrayList<String> list= myDbHelper.getAllRegion(); 
RegionList.addAll(list); 

ArrayAdapter<String>dataAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,RegionList); 
+0

這是行不通的,NullPointerException異常 – lolita 2013-05-05 12:53:12

+0

@lolita發表您的logcat的痕跡...... – Pragnani 2013-05-05 12:53:54

1

做出微調空呼dataAdapter.clear();

然後再填滿它,當你需要;像這樣:

dataAdapter.addAll(RegionList); 

,或者你可以讓迭代整個數組,並seperately添加每個元素,像這樣:

for (Object object: RegionList) { 
      dataAdapter.add(object.getData()); 
     } 

希望這是有幫助的答案

+0

我嘗試的第一個dataAdapter.clear(); dataAdapter.addAll(RegionList);它不會再填充微調框,它只是將其清空 – lolita 2013-05-05 13:13:39

+0

嘗試在for循環中單獨添加每個元素,如上所示 – 2013-05-05 13:39:40

1

我固定它: RegionList = myDbHelper.getAllRegion(); RegionList.add(0,「」); //爲微調器創建適配器 ArrayAdapterdataAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item,RegionList); 謝謝大家!