我在静态编程语言中扩展ArrayAdapter时遇到了问题。
这里的代码:
class SpinnerArrayAdapter(context: Context?, resource: Int, list: ArrayList<Pair<Long, String>>) : ArrayAdapter<Pair<Long, String>>(context, resource, list) {
override fun getCount(): Int {
return list.size //error list is unresolved
}
}
编辑与ArrayAdapter扩展无关。我的问题是构装师的理解。
class MainActivity : AppCompatActivity(),AdapterView.OnItemSelectedListener {
var languages = arrayOf("English", "French", "Spanish", "Hindi", "Russian", "Telugu", "Chinese", "German", "Portuguese", "Arabic", "Dutch", "Urdu", "Italian", "Tamil", "Persian", "Turkish", "Other")
var spinner:Spinner? = null
var textView_msg:TextView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
textView_msg = this.msg
spinner = this.spinner_sample
spinner!!.setOnItemSelectedListener(this)
// Create an ArrayAdapter using a simple spinner layout and languages array
val aa = ArrayAdapter(this, android.R.layout.simple_spinner_item, languages)
// Set layout to use when the list of choices appear
aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
// Set Adapter to Spinner
spinner!!.setAdapter(aa)
}
override fun onItemSelected(arg0: AdapterView<*>, arg1: View, position: Int, id: Long) {
textView_msg!!.text = "Selected : "+languages[position]
}
override fun onNothingSelected(arg0: AdapterView<*>) {
}
}
它可能对你有帮助,试试看。
如果您没有将构造函数参数声明为val
或var
,则只能在init
块中访问它们,因为它们不是属性:
class Test(context: Context) {
private lateinit var applicationContext: Context
init {
applicationContext = context.applicationContext
}
}
如果您需要在init
块之外访问它们,您应该根据您的需要使用val
或var
将它们标记为属性:
class Test(val context: Context) {
private lateinit var applicationContext: Context
fun test() {
applicationContext = context.applicationContext
}
}
我试过你的问题,发现了同样的问题。
但通过使用val关键字调用构造函数,它就可以工作了。
class SpinnerArrayAdapter(context: Context?, val resource: Int, val list: ArrayList<Pair<Long, String>>) : ArrayAdapter<Pair<Long, String>>(context, resource, list) {
override fun getCount(): Int {
return list.size
}
}
反正我也不知道这种情况下为什么需要val关键字,我来挖掘一下,找到问题所在。
问题内容: 大家好,我正在尝试在选项卡中列出文本数据,这是我的方法 无法解析构造函数ArrayAdapter 的方法,这是我的主要活动。任何帮助将不胜感激,我仍然是一个noobie 。 问题答案: 更改 至 你可以在使用。
这个例子来自我正在学习的一门Kotlin课程: 如果我喜欢使用这样的主构造函数: 在这种情况下,我必须如何编写getter/setter?
问题内容: 我知道这个问题已经被问了一百万遍了,但是我已经尝试了所有可以找到的解决方案,但是仍然行不通。我试过为上下文调用“ this”,试过了getActivity,试过了getContext(),但似乎没有什么特别适合此片段。相同的代码确实在不同的片段中起作用,这就是为什么我真的很困惑。任何帮助表示赞赏。 我的LoginFragment,我的问题可以在setReservations()中找到:
本文向大家介绍C#静态构造函数?相关面试题,主要包含被问及C#静态构造函数?时的应答技巧和注意事项,需要的朋友参考一下 最先被执行的构造函数,且在一个类里只允许有一个无参的静态构造函数 执行顺序:静态变量>静态构造函数>实例变量>实例构造函数
我有静态函数,它仅限于一些上下文(例如仅用于文档)。有两种替代方法可以将其定义为顶层函数或对象中的函数。 1. 2. 顶级函数的优点是它没有被包装在一个对象中,缺点是它可以从任何地方访问,没有类名前缀。这种情况有优点还是缺点或最佳实践?
我试图用OkHttp和Cucumber在静态编程语言中设置一个Spring启动项目,并且在运行Cucumber任务时遇到以下错误。如何修复? 还有build gradle kts片段 我看到了这个错误https://github.com/square/okio/issues/647看起来可能是它,并修复了这个build.gradle,我如何将其翻译为kotlinbuild.gradle.kts?