首先,这是我的代码
class MergedView (context : Context,attributeSet: AttributeSet?) : LinearLayout(context,attributeSet) {
var myCalendar : HorizontalCalendar? = null
var scheduleList : ListView?= null
init {
val infService = Context.LAYOUT_INFLATER_SERVICE
val li = context.getSystemService(infService) as LayoutInflater
val v = li.inflate(R.layout.calendar_sequence, this, false)
addView(v)
val startDate = Calendar.getInstance()
startDate.add(Calendar.MONTH, -5)
val endDate = Calendar.getInstance()
endDate.add(Calendar.MONTH, 5)
myCalendar = HorizontalCalendar.Builder(this, R.id.calendarView)
.range(startDate, endDate)
.datesNumberOnScreen(5)
.build()
myCalendar?.setCalendarListener(object : HorizontalCalendarListener() {
override fun onDateSelected(date: Calendar, position: Int) {
}
})
val texts = arrayOf("None", "None","None")
val adapter =
ArrayAdapter(context,android.R.layout.simple_list_item_1,texts)
scheduleList = findViewById(R.id.testList)
scheduleList?.setAdapter(adapter)
}
}
我正在制作称为合并视图的自定义视图,该视图具有ListView和HorizontalCalendarView(另一个自定义视图)
因此,严格来说,根据android开发文档,ArrayAdapter的构造函数之一是
“ ArrayAdapter(上下文上下文,int资源,int textViewResourceId,T []
对象。”我唯一不了解的是上下文参数。根据我的理解,上下文参数是附加了适配器视图的context(Activity)。但是,如果适配器视图附加在自定义视图上(在我的案例合并视图),那么我们可以说上下文不是适配器视图附加的东西,因此我认为将上下文传递给ArrayAdapter构造函数是不正确的(我认为传递自定义视图听起来更合乎逻辑)。
这是我的问题 1.我误会了什么? 2.什么是正确的概念?