Android - android.widget.ArrayAdapter , Call requires API level 11

android.widget.ArrayAdapter , Call requires API level 11

使用以前在4.0開發的程式,將程式碼複製到要minSdkVersion 為 10的環境下,

結果發生了 android.widget.ArrayAdapter , Call requires API level 11

網路上是有一篇文章

http://stackoverflow.com/questions/9677172/listviews-how-to-use-arrayadapter-addall-function-before-api-11

下段介紹了兩種方法

https://github.com/android/platform_frameworks_base/blob/master/core/java/android/widget/ArrayAdapter.java

可能是改寫原本的程式

另一個是

http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/

直接用迴圈add

                if(m_orders != null && m_orders.size() > 0){
                    m_adapter.notifyDataSetChanged();
                    for(int i=0;i<m_orders.size();i++)
                    m_adapter.add(m_orders.get(i));
                }

後來我就改寫我原本的程式,將這樣的一段加入繼承後的Adapter

    /**
        *  Supper all sdk use
        * @param list
        */
    public void addAllItem(List<YourObjectModel> list) {
        if(Build.VERSION.SDK_INT >=11) {
            this.addAll(list);
        } else {
            for (int i = 0; i < list.size(); i++){
                this.add(list.get(i));
            }
        }
    }

感覺或許不好,這只是其中一種解決方案。參考參考。