Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android-kotlin-java.lang.ClassCastException_Java_Android_Kotlin_Classcastexception - Fatal编程技术网

android-kotlin-java.lang.ClassCastException

android-kotlin-java.lang.ClassCastException,java,android,kotlin,classcastexception,Java,Android,Kotlin,Classcastexception,RecyclerView多视图类型错误 FATAL EXCEPTION: main Process: com.example.expertsaraqeb.myapplication, PID: 4329 java.lang.ClassCastException: com.example.expertsaraqeb.myapplication.Madapter$MyHolder cannot be cast to com.example.expertsaraqeb.my

RecyclerView多视图类型错误

FATAL EXCEPTION: main
       Process: com.example.expertsaraqeb.myapplication, PID: 4329
       java.lang.ClassCastException: com.example.expertsaraqeb.myapplication.Madapter$MyHolder cannot be cast to com.example.expertsaraqeb.myapplication.MyViewH
06-05 07:00:35.897 4329-4329/com.example.expertsaraqeb.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
   Process: com.example.expertsaraqeb.myapplication, PID: 4329
   java.lang.ClassCastException: com.example.expertsaraqeb.myapplication.Madapter$MyHolder cannot be cast to com.example.expertsaraqeb.myapplication.MyViewH
       at com.example.expertsaraqeb.myapplication.Madapter.onBindViewHolder(Madapter.kt:27)
       at com.example.expertsaraqeb.myapplication.Madapter.onBindViewHolder(Madapter.kt:11)
       at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6356)
       at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6389)
       at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5335)
       at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5598)
       at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5440)
       at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5436)
       at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2224)
       at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1551)
       at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1511)
       at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:595)
       at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3583)
       at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:3025)
       at android.view.View.measure(View.java:16749)
       at android.support.constraint.ConstraintLayout.internalMeasureChildren(ConstraintLayout.java:934)
       at android.support.constraint.ConstraintLayout.onMeasure(ConstraintLayout.java:973)
       at android.view.View.measure(View.java:16749)
       at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1658)
       at android.view.View.measure(View.java:16749)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5295)
       at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:714)
       at android.support.design.widget.HeaderScrollingViewBehavior.onMeasureChild(HeaderScrollingViewBehavior.java:90)
       at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onMeasureChild(AppBarLayout.java:1391)
       at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:784)
       at android.view.View.measure(View.java:16749)
       at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:1081)
       at android.view.View.measure(View.java:16749)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5295)
       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
       at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:139)
       at android.view.View.measure(View.java:16749)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5295)
       at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1413)
       at android.widget.LinearLayout.measureVertical(LinearLayout.java:696)
       at android.widget.LinearLayout.onMeasure(LinearLayout.java:589)
       at android.view.View.measure(View.java:16749)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5295)
       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
       at android.view.View.measure(View.java:16749)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5295)
       at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1413)
       at android.widget.LinearLayout.measureVertical(LinearLayout.java:696)
       at android.widget.LinearLayout.onMeasure(LinearLayout.java:589)
       at android.view.View.measure(View.java:16749)
       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5295)
       at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
       at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2439)
       at android.view.View.measure(View.java:16749)
       at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2072)
    at android.
代码:

package com.example.expertsaraqeb.myapplication
导入android.content.Context
导入android.support.v7.widget.RecyclerView
导入android.util.Log
导入android.view.LayoutInflater
导入android.view.view
导入android.view.ViewGroup
类Madapter(val-context:context,val-array:ArrayList):RecyclerView.Adapter(){
变量类型1=15
变量类型2=28
覆盖getItemViewType(位置:Int):Int{
如果(位置==0){
返回类型1
}否则{
返回类型2
}
}
重写getItemCount():Int{
返回数组.size
}
覆盖BindViewHolder(p0:MyHolder?,p1:Int){
如果(p0!!.itemViewType==TYPE1){
val my=p0作为MyViewH//此处出错
Log.d(“walidalhasn”、“p”+getItemViewType(p1))
}else if(p0.itemViewType==TYPE1){
Log.d(“walidalhasn”、“j”+getItemViewType(p1))
}
}
override fun onCreateViewHolder(p0:ViewGroup?,p1:Int):MyHolder{
if(getItemViewType(p1)=类型1){
val view=LAYOUTINGFLATER.from(上下文)。充气(R.layout.row\U no\U color,p0,false)
返回MyViewH(视图)
}否则{
val view=LAYOUTIONFLATER.from(上下文)。充气(R.layout.home_行,p0,false)
返回MyHolder(视图)
}
}
打开类MyHolder(视图:视图):RecyclerView.ViewHolder(视图)
}
类MyViewH(视图:视图?):Madapter.MyHolder(视图!!)

onCreateViewHolder(p0:ViewGroup?,p1:Int)
中,
p1
表示
viewType

应该是

if (p1 == TYPE1) {
而不是

if (getItemViewType(p1) == TYPE1) {

另外,您可能希望从
getItemCount
返回
array.size+1
,因为您添加了标题视图。

致命异常:主进程:com.alhasnaps.resimleri,PID:17516 kotlin.TypeCastException:null不能转换为非null类型android.widget.ImageView
我在代码中看不到任何与ImageView相关的内容。
if (getItemViewType(p1) == TYPE1) {