android - 在 Kotlin 中构建 GridView 时无法传递上下文

标签 android gridview kotlin android-studio-3.0

我正在寻找在 Kotlin 中创建 GridView 的帮助。请不要向我展示 JAVA 代码,因为我已经尝试过改编各种 JAVA 示例。

因此,我创建了 BaseAdapter 的扩展,但我无法传递上下文。安卓documentation显示它如何通过调用 gridview.setAdapter(new ImageAdapter(this)); 进行访问。

将 BaseAdapter 分配给我 Activity 中的 GridView 元素

collectionView.adapter = ButtonAdapter()

我已经尝试在内部传递上下文,但我收到太多参数的错误

collectionView.adapter = ButtonAdapter(baseContext())

我的 BaseAdapter 扩展以及我尝试通过其初始化的方法

class ButtonAdapter : BaseAdapter() {
       var con: Context? = null
           //.....
       fun ButtonAdapter(context: Context) {
           con = context
       }
}

我在尝试传递上下文和创建 GridView 时做错了什么?提前感谢您的帮助。

最佳答案

像这样改变你的类(class):

class ButtonAdapter(val context: Context) : BaseAdapter() {
 // ...

然后你可以传递上下文:

ButtonAdapter(context)

fun 用于函数。要通过构造函数传递数据,您可以像上面那样更改代码,这是主要的构造函数。

添加 val 是可选的。它使 context 成为类的属性,以便您可以访问类中的 context

关于android - 在 Kotlin 中构建 GridView 时无法传递上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45835542/

相关文章:

Android:如何创建类似 Facebook 的图片库网格?

android - 如何在 Kotlin 中创建通用适配器?

android - 如何在 Android 中创 build 备管理员

gridview - 如何将 css 应用于 yii2 中 gridview 列的特定列

android - 如何在Android中获取当前的sqlite数据库大小或包大小?

java - Android如何在不使用onclicklistener的情况下从gridview获取所选项目的位置,而是使用ontouchlistener

kotlin - 有没有办法在 IntelliJ 中打开 Kotlin 样本?

android - 将数据从一项 Activity 发送回另一项 ANDROID KOTLIN

android - 如何在 Android 中以编程方式将手机置于飞行模式?

android - 找不到 com.teslacoilsw.notifier 的提供商信息