我正试图创建一个函数,在按下按钮时将3个editext值存储到对象中。这些对象存储在一个可变列表中,该列表将被返回并显示在可回收视图中。
fun getWish(): MutableList<Wish>{
val wishes : MutableList<Wish> = ArrayList()
add_button.setOnClickListener {
val name= name_input.getText().toString()
val price= price_input.getText().toString()
val url= url_input.getText().toString()
val wishTemp = Wish(name, price, url)
wishes.add(wishTemp)
print(wishTemp)
print(wishes)
}
return wishes
}
问题是该列表没有显示在recycleview中。回收视图适配器不是问题所在,因为它是使用测试列表进行测试的。我的实现不起作用吗?
打印函数显示的是参考值,而不是实际字符串。但是,每次按下按钮时,都会添加"愿望"列表。
RecyclerView
中的新数据显示在哪里?您在这里所做的只是创建一个新列表并向其中添加一些Wish
对象。您需要将这些内容添加到Adapter
中的数据集,然后调用其中一个notify*
方法来告诉它更新显示(如notifyDataSetChanged
(。你还没有展示你在哪里做这件事,所以我们无法知道这个实现是否有效。
(无论如何,你可能想显示你的适配器代码,用一些数据初始化和稍后用其他数据更新是有区别的(
您获得了对print
的引用,因为在猜测中,Wish
是一个普通类,并且您还没有重写toString()
方法,使其能够很好地打印字符串。如果您能使它成为数据类,它将为您提供一个打印构造函数参数值的默认实现。