3 回答

TA貢獻1809條經驗 獲得超8個贊
像這樣創建你的列表
// modify your adapter class like this
Context context;
ArrayList<my_todo> myDoes;
public DoesAdapter(Context c, ArrayList<my_todo> p) {
context = c;
myDoes = p;
}
// create list in your activity
ArrayList<my_todo> list=new ArrayList<>();
list.add(new my_todo("title","date","desc","key"));
// pass list to adapter class
new DoesAdapter(this,list);

TA貢獻1868條經驗 獲得超4個贊
您的問題的原因是您在使用ArrayList
時沒有指定泛型類型,這意味著當您從列表中獲取元素時它將是Object
而不是my_todo
,您可以通過添加您希望列表為的泛型類型來簡單地解決此問題:
改為ArrayList myDoes;
_List<my_todo> myDoes;
和構造函數參數List<my_todo> p
。
請注意,我使用List
而不是ArrayList
,因為它是更抽象的類型,最好的做法是始終使用在給定情況下可能的最抽象類型。
更新:
我很樂意向您解釋泛型的工作原理,但這會導致答案很長,鑒于您是初學者,我建議您查找一些 Java 書籍或在線課程,其中大部分涵蓋泛型、它們的工作原理以及如何使用它們,還有您可以從 Oracle 本身閱讀本教程

TA貢獻1799條經驗 獲得超6個贊
嘗試將您聲明ArrayList myDoes
為ArrayList<my_todo>
myDoes 并在您的 Adapter 構造函數參數中聲明。只有ArrayList
你有一個ArrayList
類型Object
。
添加回答
舉報