Android 自定义适配器中未解析的引用
我有一个实现ArrayAdapter的类。 问题是,我需要引用一个ImageView和TextView,其id是imageViewIcon和textViewName,但是当我使用findViewById时,我会得到一个未解决的引用错误 这是一个类,它实现了适配器,我从中得到了错误Android 自定义适配器中未解析的引用,android,kotlin,Android,Kotlin,我有一个实现ArrayAdapter的类。 问题是,我需要引用一个ImageView和TextView,其id是imageViewIcon和textViewName,但是当我使用findViewById时,我会得到一个未解决的引用错误 这是一个类,它实现了适配器,我从中得到了错误 class DrawerItemCustomAdapter(context: Context, var resource: Int, objects: Array<DataModel>): ArrayAda
class DrawerItemCustomAdapter(context: Context, var resource: Int, objects: Array<DataModel>): ArrayAdapter<DataModel>(
context,
resource,
objects
) {
var mContext: Context? = context
var layoutResourceId = resource
var data: Array<DataModel>? = objects
public override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
// return super.getView(position, convertView, parent)
var listItem = convertView!!
val inflater = (mContext as Activity).layoutInflater
listItem = inflater.inflate(layoutResourceId, parent, false)
val imageViewIcon = listItem.findViewById(R.id.imageViewIcon) as ImageView
val textViewName = listItem.findViewById<View>(R.id.textViewName) as TextView
val (icon, name) = data!![position]
imageViewIcon.setImageResource(icon)
textViewName.text = name
return listItem
}
}
class-DrawerItemCustomAdapter(上下文:context,var-resource:Int,objects:Array):ArrayAdapter(
上下文
资源,,
物体
) {
var mContext:上下文?=上下文
var layoutResourceId=资源
变量数据:数组?=对象
公共视图(位置:Int,convertView:View?,父级:ViewGroup):视图{
//return super.getView(position、convertView、parent)
var listItem=convertView!!
val充气器=(mContext作为活动)。布局充气器
listItem=充气机。充气(layoutResourceId,父项,false)
val imageViewIcon=listItem.findViewById(R.id.imageViewIcon)作为ImageView
val textViewName=listItem.findViewById(R.id.textViewName)作为TextView
val(图标,名称)=数据!![位置]
设置图像资源(图标)
textViewName.text=名称
返回列表项
}
}
这是list_view_item_row.xml,其中包含TextView和ImageView
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/activatedBackgroundIndicator"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:padding="10dp" >
<ImageView
android:id="@+id/imageViewIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:paddingRight="10dp" />
<TextView
android:id="@+id/textViewName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/imageViewIcon"
android:paddingRight="10dp"
android:text="Item Name"
android:textColor="@android:color/black"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
/>
</RelativeLayout>
在活动中,我使用适配器
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.new_main)
var drawerItem = arrayOf<DataModel>(DataModel(R.drawable.ic_android_black_24dp, "Connect"))
val adapter:DrawerItemCustomAdapter= DrawerItemCustomAdapter(this,R.layout.list_view_item_row, drawerItem )}
override-fun-onCreate(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.new_main)
var drawerItem=arrayOf(数据模型(R.drawable.ic\u android\u black\u 24dp,“连接”))
val适配器:DrawerItemCustomAdapter=DrawerItemCustomAdapter(this,R.layout.list_view_item_row,drawerItem)}
您从何处获得未解析的引用?你能用问题添加行和错误吗?它在DrawerItemCustomAdapter的getView中。val imageViewIcon=listItem.findViewById(R.id.imageViewIcon)作为ImageView它不应给出未解析的引用。只需使缓存无效并重新启动IDE。您所说的“无效”是什么意思?在文件
菜单中应该有一个选项使缓存无效并重新启动
。