باز کردن اکتیویتی جدید در کوتلین
سلام توسعه دهندگان عزیز در این سری از آموزش برنامه نویسی کوتلین (kotlin) به آموزش باز کردن اکتیویتی جدید در کوتلین می پردازیم برای باز کردن اکتیویتی جدید از Intent در برنامه نویسی کوتلین استفاده می شود در ادامه با ما همراه باشید تا نحوه استفاده از Intent ها را در زبان برنامه نویسی کوتلین (kotlin) یاد گیرید.
ما در این آموزش از دو اکتویتی استفاده می کنیم.
layout اولی ما که نام activity_main.xml است کدهای زیر در آن قرار دارد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:gravity="center" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:text="This is first Activity - Programchi.ir" android:textSize="25sp" android:padding="20sp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/btnStartAnotherActivity" android:text="Start Another Activity" android:textColor="#FFF" android:padding="20sp" android:background="#397bb2" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> |
در بالا یک دکمه برای باز کردن یک اکتیویتی جدید و یک TextView برای نمایش متن قرار داده شده است.
کد اکتیویتی مربوط به layout اول هم همانند زیر خواهد بود نام این اکتیویتی برابر با MainActivity.kt است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | package ir.programchi import android.content.Intent import android.support.v7.app.AppCompatActivity import android.os.Bundle import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) btnStartAnotherActivity.setOnClickListener { val intent = Intent(this, AnotherActivity::class.java) // start your next activity startActivity(intent) } } } |
در بالا شاید خطا داشته باشید چون هنوز اکتیویتی دوم را نساخته اید آموزش را ادامه دهید.
یک layout به نام activity_another.xml ایجاد کرده و کدهای زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:gravity="center" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".AnotherActivity"> <TextView android:text="This is another Activity" android:textSize="25sp" android:padding="20sp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> |
در بالا هم فقط یک TextView قرار داده شده است.
و کد مربوط به اکتیویتی دوم یا ActivityAnother.kt هم همانند زیر خواهد بود.
1 2 3 4 5 6 7 8 9 | package ir.programchi import android.support.v7.app.AppCompatActivity import android.os.Bundle class AnotherActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_another) } } |
در بالا فقط کدهای ساده یک اکتیویتی ساده کوتلین قرار گرفته است و چیزی اضافه نشده است.
در نهایت در AndroidManifest.xml اکتیویتی ها را اگر دستی ساخته همانند زیر تعریف کنید.
1 2 3 4 5 6 7 | <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=".AnotherActivity"></activity> |
این آموزش هم به پایان رسید.
موفق و پیروز باشید.
سلام اکتیویتی جدید رو ساختم ولی تو کلاس جدید نمیخونتش
سلام اطلاعات و راهنمایی عای این مطلب بسیار مفید بود ممنون