तो मैं एक परियोजना पर काम कर रहा हूं और मुझे अभी रीसाइक्लरव्यू और कार्डव्यू के साथ महत्वपूर्ण परेशानी हो रही है, मुझे कोड से कोई त्रुटि नहीं मिल रही है लेकिन यह क्रैश हो रहा है और मुझे नहीं पता कि क्यों

**class MyAdapter(private val myDataset: ArrayList<Results>) :**
RecyclerView.Adapter<MyAdapter.MyViewHolder>() {

class MyViewHolder(val cardView: CardView) : RecyclerView.ViewHolder(cardView) {
    val userName = itemView.findViewById<TextView>(R.id.name)
}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyAdapter.MyViewHolder {
  **val aCardView = LayoutInflater.from(parent.context).inflate(R.layout.card_view, parent, false) as CardView**
    return MyViewHolder(aCardView)
}

override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
    holder.userName.text = myDataset[position].userName

}

override fun getItemCount() = myDataset.size
}

लॉगकैट केवल ** लाइनों पर इंगित करता है लेकिन वास्तव में वहां कुछ भी नहीं है, कोई विचार? यारी इसमें इतना समय लग गया कि मैं क्या पोस्ट कर सकता था और क्या नहीं, इसके बारे में पसंद किया जा रहा था, मुझे आशा है कि यह अधिक विवरण देता है।

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">

<androidx.cardview.widget.CardView
android:id="@+id/card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">

<LinearLayout
    android:id="@+id/linearLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

  <TextView
                android:id="@+id/name"
                android:layout_width="125dp"
                android:layout_height="wrap_content"
                android:layout_marginTop="8dp"
                android:layout_marginEnd="172dp"
                android:layout_marginRight="172dp"
                android:layout_marginBottom="74dp"
                android:text="This will be the name"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

            <TextView
                android:id="@+id/description"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="4dp"
                android:layout_marginEnd="240dp"
                android:layout_marginRight="240dp"
                android:layout_marginBottom="50dp"
                android:text="TextView"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/name" />


        </androidx.constraintlayout.widget.ConstraintLayout>

    </LinearLayout>
  </androidx.cardview.widget.CardView>

  </androidx.constraintlayout.widget.ConstraintLayout>
-4
GreenHornMonster 16 मार्च 2020, 20:45
आप अपने व्यू को कार्डव्यू में टाइपकास्टिंग क्यों कर रहे हैं, आप इसे आसानी से अपने व्यू से एक्सेस कर सकते हैं। यदि आप नहीं कर सकते तो बस अपना एक्सएमएल साझा करें।
 – 
Haider Saleem
16 मार्च 2020, 20:56
मुझसे यह कैसे होगा?
 – 
GreenHornMonster
16 मार्च 2020, 20:57
अपना एक्सएमएल कोड जोड़ें।
 – 
Haider Saleem
16 मार्च 2020, 20:58
सब कुछ समझ गया, कोई विचार?
 – 
GreenHornMonster
16 मार्च 2020, 21:31
क्या आपने बार-बार एक्सएमएल कोड अपडेट करने का काम पूरा कर लिया है?
 – 
Haider Saleem
16 मार्च 2020, 21:33

2 जवाब

आप या तो कोटलिन सिंथेटिक्स का इस्तेमाल व्यू या फाइंड व्यू मेथड को रेफर करने के लिए कर सकते हैं। लेआउट इनफ्लेटर लेआउट को एक दृश्य/विजेट नहीं बढ़ाता है, इसलिए कास्ट टाइप न करें केवल लेआउट व्यू का उपयोग करके संदर्भ बनाएं।

class MyAdapter(private val myDataset: ArrayList<Results>) :
RecyclerView.Adapter<MyAdapter.MyViewHolder>() {

    class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        val userName = itemView.name
        //val userNames = itemView.findViewById<TextView>(R.id.name)
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyAdapter.MyViewHolder {
        val view = LayoutInflater.from(parent.context).inflate(R.layout.card_view, parent, false)
        return MyViewHolder(view)
    }

    override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
        holder.userName.text = myDataset[position].userName

    }

    override fun getItemCount() = myDataset.size
}
0
Haider Saleem 16 मार्च 2020, 22:17
वही समस्या, यह अभी भी मुझे सुधार के साथ त्रुटि देता है
 – 
GreenHornMonster
16 मार्च 2020, 22:49
आपने कोड कॉपी नहीं किया, क्योंकि त्रुटि किसी और चीज़ के लिए है। कृपया उसी कोड को कॉपी और पेस्ट करें और सही लेआउट को फुलाएं और प्रश्न में लॉग जोड़ें जो उत्तर में नहीं है।
 – 
Haider Saleem
17 मार्च 2020, 00:45
2020-03-16 14:47:11.159 26375-26375/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.githubmobile, PID: 26375
java.lang.ClassCastException: androidx.constraintlayout.widget.ConstraintLayout cannot be cast to androidx.cardview.widget.CardView
    at com.example.githubmobile.MyAdapter.onCreateViewHolder(MyAdapter.kt:19)
    at com.example.githubmobile.MyAdapter.onCreateViewHolder(MyAdapter.kt:10)
    at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:7078)
    at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6235)
    at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118)
    at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114)
    at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303)
    at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627)
    at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
    at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665)
    at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134)
    at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3851)
    at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4404)
    at android.view.View.layout(View.java:21927)
    at android.view.ViewGroup.layout(ViewGroup.java:6260)
    at androidx.constraintlayout.widget.ConstraintLayout.onLayout(ConstraintLayout.java:1915)
    at android.view.View.layout(View.java:21927)
    at android.view.ViewGroup.layout(ViewGroup.java:6260)
    at com.google.android.material.appbar.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:148)
    at com.google.android.material.appbar.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:43)
    at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1892)
    at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:918)
    at android.view.View.layout(View.java:21927)
    at android.view.ViewGroup.layout(ViewGroup.java:6260)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout(View.java:21927)
    at android.view.ViewGroup.layout(ViewGroup.java:6260)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
    at android.view.View.layout(View.java:21927)
    at android.view.ViewGroup.layout(ViewGroup.java:6260)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at android.view.View.layout(View.java:21927)
    at android.view.ViewGroup.layout(ViewGroup.java:6260)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)
    at android.view.View.layout(View.java:21927)
    at android.view.ViewGroup.layout(ViewGroup.java:6260)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:270)
    at com.android.internal.policy.DecorView.onLayout(DecorView.java:779)
    at android.view.View.layout(View.java:21927)
    at android.view.ViewGroup.layout(ViewGroup.java:6260)
    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3080)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2590)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1721)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7598)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:966)
    at android.view.Choreographer.doCallbacks(Choreographer.java:790)
2020-03-16 14:47:11.160 26375-26375/? E/AndroidRuntime:     at android.view.Choreographer.doFrame(Choreographer.java:725)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:951)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7356)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
0
GreenHornMonster 16 मार्च 2020, 23:22