2015-03-31 38 views
1

我想爲android設置一個數組適配器,並且需要將我的數據庫轉換爲放入數組。或者,有沒有辦法在陣列適配器中使用Arraylist?如何將Arraylist <String[]>轉換爲String []

所以我有字符串數組的數組列表

這是爲從數據庫中獲取的結果,並創建該ArrayList

public ArrayList<String[]> fetchUser(String name) throws SQLException { 

     ArrayList<String[]> myArray = new ArrayList<String[]>(); 

     int pointer = 0;  

     Cursor mCursor = mDb.query(TABLE_NAME, new String[] {"_id", "name", 
       "tel", "mob"}, "name LIKE '%" + name + "%'", null, 
        null, null, null); 

     int firstNameColumn = mCursor.getColumnIndex("name"); 
     int telColumn = mCursor.getColumnIndex("tel");  

     if (mCursor != null){ 

      if (mCursor.moveToFirst()){ 

       do { 
        myArray.add(new String[3]); 
        myArray.get(pointer)[0] = mCursor.getString(firstNameColumn); 
        myArray.get(pointer)[1] = mCursor.getString(telColumn); 
        pointer++; 
       } while (mCursor.moveToNext()); // If possible move to the next record 
      } else { 
       //if no records are returned then add a new array and say no results. 
       myArray.add(new String[3]); 
       myArray.get(pointer)[0] = "NO RESULTS"; 
       myArray.get(pointer)[1] = ""; 
      } 
     } 

代碼這是用於將數組列表和使用該代碼它在用於列表視圖

ArrayList<String[]> searchResult = new ArrayList<String[]>(); 

    searchResult = dbh.fetchUser("Ross Mackie"); 

    String[] array = searchResult.toArray(new String[searchResult.size()]); 

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, array); 

      lv.setAdapter(arrayAdapter); 
+0

將'ArrayList '轉換爲'String []'不會使敏感 – Selvin 2015-03-31 14:54:33

+0

@Selvin那麼我該如何去使用Array適配器中的ArrayList ? – RapGodRory 2015-03-31 14:57:18

+0

然後你必須使用ArrayAdpater ......但顯然你不應該使用String [],而是使用一些其他容器(自己的POJO)或SimpleAdapter與HashMap **編輯:**或甚至更好CursorAdapter ...作爲數據來自sqlite ...不,我不會提供示例,因爲在互聯網上有大量的例子 – Selvin 2015-03-31 14:57:55

回答

0
List<String> list = ..; 
String[] array = list.toArray(new String[list.size()]); 

例如一個陣列適配器:

List<String> list =new ArrayList<String>(); 
//add some stuff 
list.add("android"); 
list.add("apple"); 
String[] stringArray = list.toArray(new String[list.size()]); 

不傳遞任何參數的toArray()方法返回Object []。所以你必須傳遞一個數組作爲參數,這個參數將被列表中的數據填充並返回。您也可以傳遞一個空數組,但您也可以傳遞所需大小的數組。

原來的答覆:Converting 'ArrayList<String> to 'String[]' in Java

+0

這只是讓它崩潰 – RapGodRory 2015-03-31 14:34:44

+0

@ user27387請給我你的代碼,因爲我看不到你的問題。 – smail2133 2015-03-31 14:36:00

+0

我編輯過它,所以它解釋得更好 – RapGodRory 2015-03-31 14:44:34

0
List<String> list = new ArrayList<String>(); 

ArrayAdapter<String> oneAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list); 

oneAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
theSpinner.setAdapter(oneAdapter); 

轉換列表插入適配器並將其添加到一個微調,不正是你要找的,但它的東西。

相關問題