Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

एंड्रॉइड में कोटलिन का उपयोग करके विभिन्न एक्टिविटी के बीच कैसे स्विच करें?

एंड्रॉइड में एक्टिविटी के बीच नेविगेशन

यह उदाहरण दर्शाता है कि Intent का उपयोग करके एक एक्टिविटी से दूसरी एक्टिविटी पर कैसे नेविगेट किया जाए और वापस आया जाए।

चरण 1: नया प्रोजेक्ट बनाएं

एंड्रॉइड स्टूडियो में File → New Project चुनें।

चरण 2: MainActivity लेआउट (activity_main.xml)

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp"
    tools:context=".MainActivity"> 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="40dp"
        android:text="MainActivity"
        android:textColor="@android:color/holo_purple"
        android:textSize="24sp"
        android:textStyle="bold" /> 
    <Button
        android:id="@+id/btnOpenAct2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="सेकेंड एक्टिविटी खोलें" /> 
</RelativeLayout>

चरण 3: MainActivity.kt

import android.content.Intent
import android.os.Bundle
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"
        
        val button: Button = findViewById(R.id.btnOpenAct2)
        button.setOnClickListener {
            val intent = Intent(this@MainActivity, SecondActivity::class.java)
            // डेटा पास करना (वैकल्पिक)
            intent.putExtra("message", "MainActivity से नमस्ते!")
            startActivity(intent)
        }
    }
}

चरण 4: SecondActivity लेआउट (activity_second.xml)

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="16dp"
    tools:context=".SecondActivity"> 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="40dp"
        android:text="Second Activity"
        android:textColor="@android:color/holo_green_dark"
        android:textSize="24sp"
        android:textStyle="bold" /> 
    <TextView
        android:id="@+id/textViewMessage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:textSize="18sp" /> 
    <Button
        android:id="@+id/btnOpenMain"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textViewMessage"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:text="MainActivity पर वापस जाएं" /> 
</RelativeLayout>

चरण 5: SecondActivity.kt

import android.content.Intent
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity

class SecondActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_second)
        title = "Second Activity"
        
        // इंटेंट से डेटा प्राप्त करें
        val message = intent.getStringExtra("message") ?: "कोई संदेश नहीं"
        
        val textViewMessage = findViewById(R.id.textViewMessage)
        textViewMessage.text = "प्राप्त: $message"
        
        val button: Button = findViewById(R.id.btnOpenMain)
        button.setOnClickListener {
            // विकल्प 1: नई MainActivity इंस्टेंस शुरू करें (स्टैक में जोड़ता है)
            // val i = Intent(this@SecondActivity, MainActivity::class.java)
            // startActivity(i)
            
            // विकल्प 2: वापस जाएं (अनुशंसित - एक्टिविटी समाप्त करता है)
            finish()
            
            // विकल्प 3: डेटा के साथ वापस जाएं
            // val resultIntent = Intent().apply { putExtra("result", "SecondActivity से डेटा") }
            // setResult(RESULT_OK, resultIntent)
            // finish()
        }
    }
}

चरण 6: AndroidManifest.xml (दोनों एक्टिविटी घोषित करें)

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="https://schemas.android.com/apk/res/android" 
    package="com.example.activityswitch"> 
    <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"> 
            <intent-filter> 
                <action android:name="android.intent.action.MAIN" /> 
                <category android:name="android.intent.category.LAUNCHER" /> 
            </intent-filter> 
        </activity> 
        <activity android:name=".SecondActivity" /> 
    </application> 
</manifest>

नेविगेशन पैटर्न:

पैटर्नकोडउपयोग का मामला
आगे नेविगेशनstartActivity(intent)नई स्क्रीन खोलना
वापस नेविगेशनfinish()वर्तमान एक्टिविटी बंद करना
डेटा के साथ वापसsetResult(RESULT_OK, intent); finish()परिणाम वापस भेजना
स्टैक साफ़ करेंintent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOPलॉगआउट, होम पर जाएं
नया टास्कintent.flags = Intent.FLAG_ACTIVITY_NEW_TASKनोटिफिकेशन से खोलना

आधुनिक नेविगेशन (Jetpack Navigation Component):

जटिल ऐप्स के लिए, Navigation Component का उपयोग करने पर विचार करें जो प्रकार-सुरक्षित नेविगेशन, बैक स्टैक प्रबंधन और डीप लिंकिंग प्रदान करता है।

  1. एंड्रॉइड में सभी एक्टिविटीज़ को एक साथ कैसे बंद करें? एंड्रॉइड में सभी एक्टिविटीज़ को एक साथ कैसे बंद करें?

    एंड्रॉइड ऐप में सभी एक्टिविटीज़ को प्रोग्रामेटिकली समाप्त करना यह गाइड एक ऐप की सभी एक्टिविटीज़ को एक साथ बंद करने के विभिन्न तरीकों को दर्शाता है, मॉडर्न बेस्ट प्रैक्टिसेज के साथ। विधि 1: finishAffinity() - API 16+ (अनुशंसित) // किसी भी एक्टिविटी से कॉल करें finishAffinity(); यह वर्तमान टास्क में

  1. Android में ड्रॉएबल (Drawable) को एक्टिविटी के बीच कैसे पास करें? Android में ड्रॉएबल (Drawable) को एक्टिविटी के बीच कैसे पास करें?

    Android में Intent के माध्यम से ड्रॉएबल संसाधन पास करने का गाइड यह ट्यूटोरियल दिखाता है कि कैसे ड्रॉएबल रिसोर्स ID (इंटीजर) को Intent extra के रूप में दूसरी एक्टिविटी में पास किया जाए और वहां ImageView में सेट किया जाए। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनकर नया प्रो

  1. Android में एक्टिविटी के बीच स्विच कैसे करें? Android में एक्टिविटी के बीच स्विच कैसे करें?

    एक्टिविटी के बीच नेविगेशन यह उदाहरण दर्शाता है कि Intent का उपयोग करके दो एक्टिविटी के बीच आगे-पीछे कैसे नेविगेट करें। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: मुख्य लेआउट (activity_main.xml) <?xml version=1.0 encoding=utf-8?> <RelativeLayout xmlns:an