با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . بعد از آشنایی با چگونگی افزودن کنترل های مختلف و تنظیم طراحی اپلیکیشن در اندروید استدیو، نوبت به کدنویسی می رسد. برای این منظور در این آموزش به مباحث شروع کدنویسی در اندروید استدیو ، می پردازیم.
در ادامه ی آموزش بخش شروع کدنویسی در اندروید استدیو ، نخستین کدها را در اپلیکیشنی که در بخش قبلی طراحی کردیم را می زنیم.
اکنون شما یک برنامه ی ساده با کنترل های Text و Button را دارید. و اکنون نیاز دارید که یک فعالیت را با کد نویسی ایجاد کنید.
در ادامه چگونگی افزودن کد را در بخش MainActivity را برای زمانیکه کاربر اطلاعات را ارسال می کند. توضیح خواهیم داد.
۱- در فایل app > java > com.example.myfirstapp > MainActivity تابع ()sendMessage
را بصورت زیر اضافه کنید:
1 2 3 4 5 6 7 8 9 10 11 | class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } /** Called when the user taps the Send button */ fun sendMessage(view: View) { // Do something in response to button } } |
شما ممکن است خطایی را مشاهده کنید. چرا که کلاس View برای Android Studio، هنوز معرفی نشده است.
بنابراین مکان نمای خود را در نمای View قرار دهید. سپس کلیدهای Alt + Enter را فشار دهید.
۲- سپس به فایل activity_main.xml برگردید. و اقدامات زیر را انجام دهید:
الف- در نمای Layout Editor، روی button کلیک کنید.
ب- در پنجره ی Attributes خصوصیت onClick را اضافه کرده و از لیست کشویی روی [sendMessage [MainActivityکلیک کنید.
در حال حاضر با کلیک روی button، تابع ()sendMessage
فراخوانی می شود.
تابع فوق، داری ویژگی های زیر می باشد:
الف- دسترسی عمومی
ب- از نوع Void (بدون مقدار برگشتی) است.
پ- یک نمایه View، به عنوان تنها پارامتر شناخته می شود.
اکنون از تابع فوق، برای دریافت محتویات فیلد Text و ارسال آن، استفاده می کنیم.
Intent در واقع یک شی است که بین دو فعالیت ارتباط برقرار می کند. دراین بخش از Intent برای شروع فعالیت جدیدی، استفاده می کنیم.
در MainActivity متغیر ثابت EXTRA_MESSAGE را اضافه کنید. سپس در ()sendMessage
کدهای زیر را وارد کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | const val EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE" class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } /** Called when the user taps the Send button */ fun sendMessage(view: View) { val editText = findViewById<EditText>(R.id.editText) val message = editText.text.toString() val intent = Intent(this, DisplayMessageActivity::class.java).apply { putExtra(EXTRA_MESSAGE, message) } startActivity(intent) } } |
Android Studio دوباره با خطایی نمایش می دهد. بناراین کلیدهای Alt + Enter را بزنید.
ورودی های (import) شما باید به شرح زیر باشد:
1 2 3 4 5 | import android.content.Intent import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.view.View import android.widget.EditText |
همچنان خطای DisplayMessageActivity، باقی می ماند. اما مشکلی نیست، چرا که در بخش بعد این خطا را اصلاح می کنیم.
ساختار Intent دارای دو پارامتر است:
تابع ()putExtra ، مقدار EditText را اضافه می کند. EXTRA_MESSAGE نیز یک ثابت عمومی است. که از آن برای بازیابی اطلاعات استفاده می شود.
۱- در پنجره ی Project روی فولدر app راست کلیک کرده و مسیر New > Activity > Empty Activity را انتخاب کنید.
۲- در پنجره ی Configure Activity برای Activity Name مقدار “DisplayMessageActivity” را وارد کنید. و روی Finish کلیک کنید.
Android Studio به طور خودکار سه چیز را انجام می دهد:
اگر برنامه را اجرا کنید و روی اولین فعالیت ضربه بزنید، فعالیت دوم شروع می شود اما خالی است. این به این دلیل است. که فعالیت دوم از طرح خالی ارائه شده توسط قالب استفاده می کند.
اکنون باید یک کنترل text view را برای نمایش متن، ایجاد کنید:
۱- فایل app > res > layout > activity_display_message.xml. را باز کنید.
۲- در نوار toolbar روی Turn On Autoconnect کلیک کنید.
۳- در منوی Palette روی Text کلیک کرده و یک TextView را به طراحی درگ کنید.
۴- از بالای صفحه نمایش یک فاصل با کنترل TextView ایجاد کنید.
در صورت تمایل در پنجره Attributes خصوصیاتی مانند textSize و textColor را تغییر دهید.
اکنون باید پیغامی که قرار است در فعالیت دوم نمایش داده شود را ایجاد کنیم:
۱- در DisplayMessageActivity کد زیر را به تابع ()onCreate
اضافه کنید.
1 2 3 4 5 6 7 8 9 10 11 12 | override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_display_message) // Get the Intent that started this activity and extract the string val message = intent.getStringExtra(EXTRA_MESSAGE) // Capture the layout's TextView and set the string as its text val textView = findViewById<TextView>(R.id.textView).apply { text = message } } |
۲- کلیدهای Alt + Enter را برای اضافه شدن کلاسهای import بزنید.
1 2 3 4 | import android.content.Intent import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.widget.TextView |
در حالت عادی تمام صفحات برنامه ی شما دیده نمی شود. باید یک navigation ایجاد کنید. تا کاربر با استفاده از کلید Up، به صفحه اصلی منتقل شود.
باید مشخص کنید که کدام فعالیت، به عنوان فعالیت اصلی و والد در فایل AndroidManifest.xml قرار بگیرد.
برای این منظور فایل app > manifests > AndroidManifest.xml را باز کرده و تگ <activity> را در DisplayMessageActivity اضافه کرده و کد زیر را وارد کنید:
1 2 3 4 5 6 7 | <activity android:name=".DisplayMessageActivity" android:parentActivityName=".MainActivity"> <!-- The meta-data tag is required if you support API level 15 and lower --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity" /> </activity> |
سیستم Android اکنون به طور خودکار دکمه Up در نوار برنامه را اضافه می کند.
اکنون با کلیک روی Apply Changes در toolbar، برنامه را اجرا کنید. سپس یک متن را در فیلد text تایپ کرده و روی Send کلیک کنید. تا پیغام را در فعالیت دوم مشاهده کنید.
در حال حاضر شما اولین اپلیکیشن آندروید خود را ایجاد کردید.
در پایان این بخش ، یک اپلیکیشن ساده را با طراحی رابط کاربری آن،در محیط Android Studio طراحی و اجرا کردیم. امیدواریم که از مطالب آموزش فوق به خوبی در طراحی اپلیکیشن های اندروید، بهره ببرید.