كيفية الحصول على Context في Jetpack Compose (Kotlin)
مرحبًا أيها الزملاء! لقد بدأت للتو في تعلم Jetpack Compose وواجهت مشكلة على الفور. في نهج XML القديم، كنت معتادًا على الحصول على Context عبر `this` أو `getApplicationContext()`، لكن هذا لا يعمل في Compose. أحتاج إلى الحصول على Context، على سبيل المثال، لتشغيل `Toast`، أو الوصول إلى الموارد (`strings.xml`، الألوان)، أو إلى خدمات النظام مثل `ConnectivityManager`.
إليك مثال على الكود الخاص بي الذي لا يتم تجميعه:
```kotlin
@Composable
fun MyScreen() {
// أحاول الحصول على Context كالمعتاد
val context = this // خطأ: 'this' ليس Context
// أو هكذا:
val context = getApplicationContext() // خطأ: الدالة غير معرفة
Button(onClick = {
Toast.makeText(context, "تم الضغط!", Toast.LENGTH_SHORT).show()
}) {
Text("إظهار Toast")
}
}
```
أفهم أن Compose هو واجهة مستخدم تصريحية، ويجب أن يكون الوصول إلى Context منظمًا بشكل مختلف. ولكن كيف بالضبط؟ هل أحتاج إلى تمرير Context كمعامل؟ أم هناك