我最近进入android studio,我遇到了一个关于RecyclerViewAdapter的问题。我试过使用List
,它可以工作,但是不允许我在列表中删除或添加项目。有没有办法解决这个问题,或者我应该使用ViewModel来代替?
我的相关代码:
第一个
错误:
Process: com.example.recycleview, PID: 6955
java.lang.NoSuchMethodError: No direct method <init>(Ljava/util/List;)V in class Lcom/example/recycleview/recycledViewAdapter; or its super classes (declaration of 'com.example.recycleview.recycledViewAdapter' appears in /data/data/com.example.recycleview/code_cache/.overlay/base.apk/classes4.dex)
at com.example.recycleview.MainActivity.onCreate(MainActivity.kt:25)
at android.app.Activity.performCreate(Activity.java:8290)
at android.app.Activity.performCreate(Activity.java:8269)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1384)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3657)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3813)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2308)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7898)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
2条答案
按热度按时间t98cgbkg1#
请以大写字母开头并使用驼峰式大小写来命名所有类,例如:
重命名类后,清理并重新生成项目。
w9apscun2#
首先,列表是不可变的数据类型(仅读模式),如果你想添加/删除元素,你应该使用mutableList。
其次,您应该在配接器内宣告清单,并使用方法来更新它。
您应该将其初始化为:
现在,您可以随时更新内容列表,而无需示例化适配器。