بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

خطای cast کردن ImageView به کلاسی که از آن extends شده

مدیریت گفتگو
vahid 10 سال پیش
آخرین تغییر: 10 سال پیش

خطای classCastException: android.widget.ImageView

با سلام

من یه subclass از imageview درست کردم و یه آرایه از این subclass درست کردم تا دکمه هایی رو که در صفحه ایجاد کرده بودم رو داخلش بریزم و موقع تعریف از کد زیر استفاده کردم ولی خطای classcastexception  میده چرا؟

public class Goal extends ImageView {
    public Goal(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
           }
}

کد بالا کلاس Goal هست که extends از ImageView شده و کد پایین خط کدی که در کلاس main یه imageview رو به کلاس Goal کست کرده و به یک آرایه از نوع ArrayList<Goal> اضافه میکنه که برنامه در این خط خطا داره.

        blue_Goals.add((Goal) findViewById(R.id.imgBlue));

تشکر از راهنمایی تون

نظرات

vahid 10 سال پیش
اشکال از کجاست؟
محمد 10 سال پیش
ممکنه قسمت کد رو چپ چین کنید؟
vahid 10 سال پیش
در سایت stack overflow گفته این قطعه کد رو به قسمت xml برنامه اضافه کنید که در این حالت مشکل کمابیش حل میشه ولی مسأله ایجاس که چون من حدودا 60-70 تا ImageView دارم باید به همون تعداد این کد رو تکرار کنم که اصلا ارزششو نداره .
vahid 10 سال پیش
دوستان گرامی یه کمکی بکنید
vahid 10 سال پیش
کسی نظری نداره
MOJTABA 10 سال پیش
به ImageView کست کردین؟
vahid 10 سال پیش
بله به ImageView کست کردم.
MOJTABA 10 سال پیش
شاید این لینک جواب سوال شما باشه : لینک
vahid 10 سال پیش
اول از اینکه راهنمایی کردید تشکر میکنم . همه این کارهایی رو که تو لینک نوشته رو انجام دادم الان مسآله اینه که چون من 60-70 تا ImageView دارم باید اون قطعه کدی که توی فایل xml باید وارد بشه رو 60-70 بار تکرار کنم

پاسخ‌ها 1

vahid 10 سال پیش

<?xml version="1.0" encoding="utf-8"?>

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_height="wrap_content"

android:layout_width="wrap_content">

/////////////

<yourpackage.subClassName

android:id
="@+id/IdOfImageView"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/spinning_wheel2"

android:longClickable="true"/>
//////////////

</LinearLayout>

نظرات

vahid 10 سال پیش
مشکل کد بالا اینه که برای هر ImageView باید یک بار اون قسمتی رو که جدا کردم تکرار بشه و برای برنامه من که یه آرایه از ImageView دارم اصلا جواب نمیده.
vahid 10 سال پیش
در سایت stack overflow گفته این قطعه کد رو به قسمت xml برنامه اضافه کنید که در این حالت مشکل کمابیش حل میشه ولی مسأله ایجاس که چون من حدودا 60-70 تا ImageView دارم باید به همون تعداد این کد رو تکرار کنم که اصلا ارزششو نداره

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .