परिचय
यह उदाहरण दर्शाता है कि Kotlin का उपयोग करके एंड्रॉइड में onConfigurationChanged() को ओवरराइड करके ओरिएंटेशन चेंज (पोर्ट्रेट/लैंडस्केप) कैसे डिटेक्ट किया जाए।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio खोलें, File → New Project पर जाएं और नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।
चरण 2: लेआउट XML कॉन्फ़िगर करें
res/layout/activity_main.xml में निम्नलिखित कोड जोड़ें:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:text="Tutorials Point"
android:textAlignment="center"
android:textColor="@android:color/holo_green_dark"
android:textSize="32sp"
android:textStyle="bold" />
<TextView
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="हैलो वर्ल्ड!"
android:textSize="24sp"
android:textStyle="bold" />
</RelativeLayout>
चरण 3: Kotlin कोड लागू करें
src/MainActivity.kt में निम्नलिखित कोड जोड़ें:
import android.content.res.Configuration
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "KotlinApp"
}
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
when (newConfig.orientation) {
Configuration.ORIENTATION_LANDSCAPE ->
Toast.makeText(baseContext, "लैंडस्केप मोड", Toast.LENGTH_SHORT).show()
Configuration.ORIENTATION_PORTRAIT ->
Toast.makeText(baseContext, "पोर्ट्रेट मोड", Toast.LENGTH_SHORT).show()
}
}
}
चरण 4: मैनिफेस्ट में कॉन्फिग चेंज हैंडल करें
androidManifest.xml में एक्टिविटी में android:configChanges एट्रिब्यूट जोड़ें:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.q11">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:configChanges="orientation|screenSize|screenLayout|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
ऐप चलाएं
अपने एंड्रॉइड डिवाइस को कंप्यूटर से कनेक्ट करें। Android Studio में प्रोजेक्ट की एक्टिविटी फाइल खोलें और टूलबार से Run आइकन पर क्लिक करें। अपना मोबाइल डिवाइस चुनें और डिवाइस को घुमाकर ओरिएंटेशन चेंज टेस्ट करें।
महत्वपूर्ण नोट्स
- android:configChanges के बिना, ओरिएंटेशन चेंज पर एक्टिविटी रीक्रिएट होती है (onDestroy → onCreate)
- android:configChanges के साथ, एक्टिविटी रीक्रिएट नहीं होती, केवल onConfigurationChanged() कॉल होता है
- API 13+ (एंड्रॉइड 3.2+) पर
screenSizeऔरscreenLayoutभी आवश्यक हैं - ViewModel/LiveData का उपयोग करके कॉन्फिग चेंज पर डेटा संरक्षित करना बेहतर अभ्यास है