परिचय
यह उदाहरण दर्शाता है कि Kotlin का उपयोग करके Android Bundle के साथ एक्टिविटीज के बीच डेटा कैसे पास किया जाए।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio खोलें, File → New Project पर जाएं और आवश्यक विवरण भरकर एक नया प्रोजेक्ट बनाएं।
चरण 2: activity_main.xml लेआउट जोड़ें
res/layout/activity_main.xml में निम्न कोड जोड़ें:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:layout_centerHorizontal="true"
android:orientation="vertical"
android:padding="4dp"
tools:context=".MainActivity">
<EditText
android:id="@+id/etName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Enter a name"
android:inputType="text" />
<EditText
android:id="@+id/etPhone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Enter a Phone number"
android:inputType="number" />
<Button
android:id="@+id/btnSend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Send data" />
</LinearLayout>
चरण 3: MainActivity.kt लागू करें
src/MainActivity.kt में निम्न कोड जोड़ें:
import android.content.Intent
import android.os.Bundle
import android.text.TextUtils
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import java.io.Serializable
class MainActivity : AppCompatActivity() {
lateinit var etName: EditText
lateinit var etPhone: EditText
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "KotlinApp"
etName = findViewById(R.id.etName)
etPhone = findViewById(R.id.etPhone)
val btnSend: Button = findViewById(R.id.btnSend)
btnSend.setOnClickListener {
if (TextUtils.isEmpty(etName.text.toString()) && TextUtils.isEmpty(etPhone.text.toString())) {
Toast.makeText(this, "Something is wrong kindly check", Toast.LENGTH_LONG).show()
} else {
sendUserData(etName.text.toString(), etPhone.text.toString())
}
}
}
private fun sendUserData(username: String, userPhone: String) {
val userInfo = UserInfo()
userInfo.setName(username)
userInfo.setPhone(userPhone)
val send = Intent(this@MainActivity, SecondActivity::class.java)
val b = Bundle()
b.putSerializable("serialzable", userInfo)
send.putExtras(b)
startActivity(send)
}
}
class UserInfo : Serializable {
private lateinit var name: String
private lateinit var phone: String
fun getName(): String? {
return name
}
@JvmName("setName1")
fun setName(name: String?) {
this.name = name!!
}
fun getPhone(): String? {
return phone
}
@JvmName("setPhone1")
fun setPhone(phone: String?) {
this.phone = phone!!
}
}
चरण 4: SecondActivity बनाएं
activity_second.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:padding="4dp"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="70dp"
android:background="#008080"
android:padding="5dp"
android:text="TutorialsPoint"
android:textColor="#fff"
android:textSize="24sp"
android:textStyle="bold" />
<TextView
android:textAlignment="center"
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textColor="@android:color/holo_purple"
android:textSize="24sp"
android:textStyle="bold" />
</RelativeLayout>
SecondActivity.kt
import android.os.Bundle
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
class SecondActivity : AppCompatActivity() {
private var userInfo: UserInfo? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)
title = "KotlinApp"
val tvData: TextView = findViewById(R.id.textView)
userInfo = intent.getSerializableExtra("serialzable") as UserInfo?
val name: String = userInfo?.getName().toString()
val phone: String = userInfo?.getPhone().toString()
tvData.text = "Your entered name is $name number is $phone"
}
override fun onPause() {
super.onPause()
userInfo = null
}
}
चरण 5: AndroidManifest.xml कॉन्फ़िगर करें
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.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">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
एप्लिकेशन चलाएं
अपने Android डिवाइस को कंप्यूटर से कनेक्ट करें। Android Studio में प्रोजेक्ट की एक्टिविटी फाइल खोलें और टूलबार से Run आइकन पर क्लिक करें। अपना मोबाइल डिवाइस चुनें और डिफ़ॉल्ट स्क्रीन देखें।