无法加载 Fragment kotlin 文件中的函数方法
Couldn't load the method of the function in Fragment kotlin file
当我尝试使用点运算符在片段 kotlin 文件方法中调用 class 的函数时,出现错误。
正在尝试调用 ImageGallery 的 listOfImages 方法 class 作为,
dataList=ImageGallery.listOfImages(context)
但这仅给出错误 @listOfImages 字词。
错误:未解决的引用:listOfImages
在片段中,在 loadImaged() 方法之外:
var dataList:ArrayList<String> = ArrayList()
Class 从库中获取代码的代码:
public class ImageGallery {
public fun listOfImages(context: Context) : ArrayList<String> {
var imageList: ArrayList<String> = ArrayList()
var projection = arrayOf(MediaStore.MediaColumns.DATA,MediaStore.Images.Media.BUCKET_DISPLAY_NAME)
var orderBy:String=MediaStore.Video.Media.DATE_TAKEN
val imagecursor: Cursor? = context.contentResolver.query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null,
null, orderBy+"DESC"
)
for (i in 0 until imagecursor!!.count) {
imagecursor.moveToPosition(i)
val dataColumnIndex =
imagecursor.getColumnIndex(MediaStore.Images.Media.DATA)
imageList.add(imagecursor.getString(dataColumnIndex))
}
return imageList
}
}
片段中activity,
加载函数:
private fun loadImage(){
recyclerView.setHasFixedSize(true)
recyclerView.layoutManager=GridLayoutManager(context,3)
dataList=ImageGallery.listOfImages(context)
adapterr= context?.let { CustomAdapter(it,dataList) }
recyclerView.adapter=adapterr
galleryNumber?.text=("Photos ("+ dataList.size+")")
}
您需要创建 ImageGallery
的实例才能使用它。换句话说,使用:
ImageGallery().listOfImages(context)
而不是
ImageGallery.listOfImages(context)
或者,将函数放在 ImageGallery
的伴生对象中,其工作方式类似于 Java 中的静态函数,如
public class ImageGallery {
companion object {
public fun listOfImages(context: Context) : ArrayList<String> {
var imageList: ArrayList<String> = ArrayList()
var projection = arrayOf(MediaStore.MediaColumns.DATA,MediaStore.Images.Media.BUCKET_DISPLAY_NAME)
var orderBy:String=MediaStore.Video.Media.DATE_TAKEN
val imagecursor: Cursor? = context.contentResolver.query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null,
null, orderBy+"DESC"
)
for (i in 0 until imagecursor!!.count) {
imagecursor.moveToPosition(i)
val dataColumnIndex =
imagecursor.getColumnIndex(MediaStore.Images.Media.DATA)
imageList.add(imagecursor.getString(dataColumnIndex))
}
return imageList
}
}
}
这允许您使用
ImageGallery.listOfImages(context)
当我尝试使用点运算符在片段 kotlin 文件方法中调用 class 的函数时,出现错误。
正在尝试调用 ImageGallery 的 listOfImages 方法 class 作为,
dataList=ImageGallery.listOfImages(context)
但这仅给出错误 @listOfImages 字词。
错误:未解决的引用:listOfImages
在片段中,在 loadImaged() 方法之外:
var dataList:ArrayList<String> = ArrayList()
Class 从库中获取代码的代码:
public class ImageGallery {
public fun listOfImages(context: Context) : ArrayList<String> {
var imageList: ArrayList<String> = ArrayList()
var projection = arrayOf(MediaStore.MediaColumns.DATA,MediaStore.Images.Media.BUCKET_DISPLAY_NAME)
var orderBy:String=MediaStore.Video.Media.DATE_TAKEN
val imagecursor: Cursor? = context.contentResolver.query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null,
null, orderBy+"DESC"
)
for (i in 0 until imagecursor!!.count) {
imagecursor.moveToPosition(i)
val dataColumnIndex =
imagecursor.getColumnIndex(MediaStore.Images.Media.DATA)
imageList.add(imagecursor.getString(dataColumnIndex))
}
return imageList
}
}
片段中activity,
加载函数:
private fun loadImage(){
recyclerView.setHasFixedSize(true)
recyclerView.layoutManager=GridLayoutManager(context,3)
dataList=ImageGallery.listOfImages(context)
adapterr= context?.let { CustomAdapter(it,dataList) }
recyclerView.adapter=adapterr
galleryNumber?.text=("Photos ("+ dataList.size+")")
}
您需要创建 ImageGallery
的实例才能使用它。换句话说,使用:
ImageGallery().listOfImages(context)
而不是
ImageGallery.listOfImages(context)
或者,将函数放在 ImageGallery
的伴生对象中,其工作方式类似于 Java 中的静态函数,如
public class ImageGallery {
companion object {
public fun listOfImages(context: Context) : ArrayList<String> {
var imageList: ArrayList<String> = ArrayList()
var projection = arrayOf(MediaStore.MediaColumns.DATA,MediaStore.Images.Media.BUCKET_DISPLAY_NAME)
var orderBy:String=MediaStore.Video.Media.DATE_TAKEN
val imagecursor: Cursor? = context.contentResolver.query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null,
null, orderBy+"DESC"
)
for (i in 0 until imagecursor!!.count) {
imagecursor.moveToPosition(i)
val dataColumnIndex =
imagecursor.getColumnIndex(MediaStore.Images.Media.DATA)
imageList.add(imagecursor.getString(dataColumnIndex))
}
return imageList
}
}
}
这允许您使用
ImageGallery.listOfImages(context)