0
0
اشتراک گذاری:

رفع مشکل عدم شناسایی id در اندروید استودیو

1083 بازدید
عدم شناسایی id

رفع مشکل عدم شناسایی id در اندروید استودیو :

همواره یکی از جذابیت های کاتلین، عدم نیاز به استفاده از findViewById در جهت cast کردن view ها بوده است. بدین منظور که ما همواره میتوانستیم با id دادن به یک view ( به عنوان مثال یک textView ) از همان id برای فراخوانی آن view در اکتیویتی استفاده کنیم. مثلا اگر id یک textView را برابر با مقدار test قرار میدادیم، برای دسترسی به این textView فقط باید test را در اکتیویتی فراخوانی میکردیم. بدین شکل :

<TextView
        android:id="@+id/test"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:textColor="#000000"
        android:textSize="36sp" />
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        test.text = "Test"
        
    }
}

عدم شناسایی id در نسخه های جدید اندروید استودیو :

خوب روشی که در بالا عنوان شد، تا چندی پیش قابل استفاده بود. اما در نسخه های جدید اندروید استودیو زمانی که یک id را در اکتیویتی فراخوانی میکنیم، آن id شناسایی نشده و نمیتوانیم از view های خود استفاده کنیم. بسیاری از کاربران و برنامه نویسان اندروید به محض برخورد با این قضیه، مشکل را به گردن کاتلین انداخته و شروع به نقد کردن زبان برنامه نویسی کاتلین میکنند.

پلاگین Kotlin Android Extensions :

از ابتدای تولد کاتلین تا کنون این خود زبان کاتلین نبود که cast کردن view ها را انجام میداد؛ بلکه افزونه یا پلاگینی با نام kotlin-android-extensions این عملیات را هندل میکرد. در نسخه های قدیمی تر اندروید استودیو، این پلاگین هم به صورت پیش فرض در فایل build.gradle موجود بود. اما در نسخه های جدید اندروید استودیو، این پلاگین به صورت پیشفرض وجود ندارد و باید آن را به صورت دستی اضافه کنید. 

شیوه افزودن پلاگین مدنظر :

برای اضافه کردن پلاگین نامبرده کافیست طبق تصویر زیر، عبارت kotlin-android-extensions را به فایل build.gradle مربوط به ماژول app خود اضافه کنید. پس از افزودن این خط به فایل gradle بایستی گردل را یک بار sync کرده تا پلاگین به درستی به پروژه شما افزوده شود. دقت کنید که هنگام سینک کردن گردل حتما به vpn متصل باشید تا به مشکل یا error برخورد نکنید. 

عدم شناسایی id
عدم شناسایی id

علت برداشته شدن این پلاگین از حالت پیشفرض چیست ؟

شرکت Jetbrains به تازگی اعلام کرده است که پلاگین kotlin-android-extensions دیگر منسوخ شده و پشتیبانی نمیشود. به همین دلیل است که این پلاگین از حالت پیشفرض اندروید استودیو خارج شده است. پس استفاده از این پلاگین در جهت شناسایی id به نفع ما نبوده و حالا که منسوخ شده بهتر است که به سراغ جایگزین های آن برویم. جایگزین هایی که خود گوگل و جت برینز معرفی کرده اند. برای آشنایی بیشتر با این جایگزین ها و نیز فهمیدن دلایل منسوخ شدن پلاگین kotlin-android-extensions میتوانید از مقاله ( دلایل منسوخ شدن kotlin-android-extensions ) استفاده کنید.

استفاده از findViewById :

یکی از روش های قدیمی cast کردن view ها و شناسایی id، روش findViewById میباشد. منتها این روش به دلیل مشکلات زیادی که برای RAM گوشی ایجاد میکند، روش آنچنان مناسبی نیست. در خود زبان جاوا هم از کتابخانه هایی نظیر Butter knife به جای findViewById استفاده میشد که البته این کتابخانه در کاتلین کاربردی نداشته و منسوخ شده محسوب میشود. راه حل اساسی حل این مشکل، استفاده از view binding خواهد بود. چراکه این روش مورد تایید خود گوگل بوده و جایگزین اصلی پلاگین منسوخ شده kotlin-android-extensions محسوب میشود. ( آموزش فعال سازی View Binding )

آنچه در این ویدیوی آموزشی می آموزید :

در این ویدیوی آموزشی به رفع مشکل عدم شناسایی id در اندروید استودیو خواهیم پرداخت و به صورت عملی و تصویری پلاگین kotlin-android-extensions را به فایل گردل خود اضافه خواهیم کرد. پس از دیدن این ویدیوی آموزشی دیگر نگران عدم شناسایی id ها در اکتیویتی نباشید. چراکه یک بار برای همیشه این مشکل را رفع کرده و شیوه حل این مشکل را نیز درک خواهیم کرد. هر چند که پیشنهاد آموزشگام، کنار گذاشتن این پلاگین خواهد بود.

خوب امیدوارم که حال دلتون خوب باشه.

به امید روزای بهتر…

آموزشگام را در شبکه های اجتماعی دنبال کنید :

آیا این مطلب را می پسندید؟
https://amozeshgam.ir/?p=4105
علیرضا احمدی
بنده علیرضا احمدی هستم توسعه دهنده اندروید، مدیر تولید محتوای وبسایت Amozeshgam و مسلط به زبان های برنامه نویسی جاوا، کاتلین، سی شارپ و PHP و نیز سابقه طراحی سایت با Css و Html. عاشق آموزش دیدن و آموزش دادن.
برچسب ها:

نظرات

3 نظر در مورد رفع مشکل عدم شناسایی id در اندروید استودیو

دیدگاهتان را بنویسید

اموزشگام