在 Kotlin 中构建 GridView 时无法传递上下文
Cannot pass Context when building a GridView in Kotlin
我正在寻找在 Kotlin 中创建 GridView 的帮助。请不要向我展示 JAVA 代码,因为我已经尝试过改编各种 JAVA 示例。
所以,我创建了 BaseAdapter 的扩展,但我无法传递上下文。 Android 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
成为 class 的 属性,以便您可以访问 class.
中的 context
您可以在主构造函数中发送它,如下所示。
public class ButtonAdapter(context: Context) : BaseAdapter() {
private val mInflator: LayoutInflater
init {
this.mInflator = LayoutInflater.from(context)
}
}
###这是说明
//你将把它改成接受上下文
class ClassName(val mcontext: Context):
//在Activity中传递上下文
ClassName(this).methodCall()
我正在寻找在 Kotlin 中创建 GridView 的帮助。请不要向我展示 JAVA 代码,因为我已经尝试过改编各种 JAVA 示例。
所以,我创建了 BaseAdapter 的扩展,但我无法传递上下文。 Android 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
成为 class 的 属性,以便您可以访问 class.
context
您可以在主构造函数中发送它,如下所示。
public class ButtonAdapter(context: Context) : BaseAdapter() {
private val mInflator: LayoutInflater
init {
this.mInflator = LayoutInflater.from(context)
}
}
###这是说明
//你将把它改成接受上下文
class ClassName(val mcontext: Context):
//在Activity中传递上下文
ClassName(this).methodCall()