এই কোডল্যাবটি অ্যান্ড্রয়েড কোটলিন ফান্ডামেন্টাল কোর্সের অংশ। আপনি যদি ক্রমানুসারে কোডল্যাবগুলির মাধ্যমে কাজ করেন তবে আপনি এই কোর্সের সর্বাধিক মূল্য পাবেন৷ সমস্ত কোর্স কোডল্যাব অ্যান্ড্রয়েড কোটলিন ফান্ডামেন্টাল কোডল্যাব ল্যান্ডিং পৃষ্ঠায় তালিকাভুক্ত করা হয়েছে।
এই কোডল্যাবে, আপনি টুকরো সম্পর্কে শিখবেন এবং আপনি AndroidTrivia নামক একটি স্টার্টার অ্যাপের মধ্যে একটি খণ্ড তৈরি করবেন। পরবর্তী কোডল্যাবে, আপনি নেভিগেশন সম্পর্কে আরও শিখবেন এবং AndroidTrivia অ্যাপে আরও কাজ করবেন।
আপনি ইতিমধ্যে কি জানা উচিত
- কোটলিনের মৌলিক বিষয়গুলো
- কোটলিনে কীভাবে মৌলিক অ্যান্ড্রয়েড অ্যাপ তৈরি করবেন
- লেআউট নিয়ে কিভাবে কাজ করবেন
আপনি কি শিখবেন
- আপনার অ্যাপে স্ট্যাটিকভাবে একটি ফ্র্যাগমেন্ট কিভাবে যোগ করবেন
আপনি কি করবেন
- একটি কার্যকলাপের ভিতরে একটি খণ্ড তৈরি করুন।
এই পাঠটি তৈরি করে এমন তিনটি কোডল্যাবে, আপনি AndroidTrivia নামক একটি অ্যাপে কাজ করেন। সম্পূর্ণ অ্যাপটি এমন একটি গেম যেখানে ব্যবহারকারী অ্যান্ড্রয়েড কোডিং সম্পর্কে তিনটি তুচ্ছ প্রশ্নের উত্তর দেয়। ব্যবহারকারী তিনটি প্রশ্নের সঠিক উত্তর দিলে, তারা গেমটি জিতবে এবং তাদের ফলাফল শেয়ার করতে পারবে।
AndroidTrivia অ্যাপটি নেভিগেশন প্যাটার্ন এবং নিয়ন্ত্রণগুলিকে চিত্রিত করে৷ অ্যাপটিতে বেশ কয়েকটি উপাদান রয়েছে:
- উপরের স্ক্রিনশটে বাম দিকে দেখানো শিরোনাম স্ক্রিনে, ব্যবহারকারী গেমটি শুরু করে।
- উপরের মাঝখানে দেখানো প্রশ্ন সহ গেম স্ক্রীনে, ব্যবহারকারী গেমটি খেলে এবং তাদের উত্তর জমা দেয়।
- উপরের ডানদিকে দেখানো নেভিগেশন ড্রয়ারটি অ্যাপের পাশ থেকে স্লাইড করে এবং একটি হেডার সহ একটি মেনু ধারণ করে। ড্রয়ার আইকন নেভিগেশন ড্রয়ার খোলে। নেভিগেশন-ড্রয়ার মেনুতে অ্যাবাউট পৃষ্ঠার একটি লিঙ্ক এবং গেমের নিয়মগুলির একটি লিঙ্ক রয়েছে।
অ্যাপের শীর্ষে অ্যাপ বার নামে একটি রঙিন দৃশ্য দেখায়, যা অ্যাকশন বার নামেও পরিচিত।
এই কোডল্যাবে, আপনি একটি স্টার্টার অ্যাপ থেকে কাজ করেন যা টেমপ্লেট কোড এবং ফ্র্যাগমেন্ট ক্লাস প্রদান করে যা আপনি ট্রিভিয়া অ্যাপটি সম্পূর্ণ করার সময় আপনার প্রয়োজন।
- AndroidTrivia-Starter Android Studio প্রোজেক্ট ডাউনলোড করুন।
- অ্যান্ড্রয়েড স্টুডিওতে প্রকল্পটি খুলুন এবং অ্যাপটি চালান। যখন অ্যাপটি খোলে, এটি অ্যাপের নাম এবং একটি ফাঁকা স্ক্রীন প্রদর্শন ছাড়া অন্য কিছু করে না।
- অ্যান্ড্রয়েড স্টুডিও প্রজেক্ট প্যানে, প্রজেক্ট খুলুন: প্রোজেক্ট ফাইলগুলি অন্বেষণ করতে অ্যান্ড্রয়েড ভিউ।
MainActivity
ক্লাস এবং ফ্র্যাগমেন্ট ক্লাস দেখতে অ্যাপ > java ফোল্ডার খুলুন। - res > লেআউট ফোল্ডারটি খুলুন এবং activity_main.xml- এ ডাবল ক্লিক করুন।
activity_main.xml
ফাইলটি লেআউট এডিটরে উপস্থিত হয়। - ডিজাইন ট্যাবে ক্লিক করুন।
activity_main.xml
ফাইলের কম্পোনেন্ট ট্রি রুটLinearLayout
উল্লম্ব লিনিয়ার লেআউট হিসেবে দেখায়।
একটি উল্লম্ব লিনিয়ার লেআউটে , লেআউটের সমস্ত চাইল্ড ভিউ উল্লম্বভাবে সারিবদ্ধ করা হয়।
একটি খণ্ড একটি কার্যকলাপের মধ্যে একটি আচরণ বা ব্যবহারকারী ইন্টারফেসের (UI) একটি অংশ প্রতিনিধিত্ব করে। আপনি একটি মাল্টি-পেন UI তৈরি করতে একটি একক কার্যকলাপে একাধিক খণ্ডকে একত্রিত করতে পারেন এবং আপনি একাধিক কার্যকলাপে একটি খণ্ড পুনরায় ব্যবহার করতে পারেন।
একটি ক্রিয়াকলাপের একটি মডুলার বিভাগ হিসাবে একটি খণ্ডকে ভাবুন, একটি "সাব অ্যাক্টিভিটি" এর মতো কিছু যা আপনি অন্যান্য ক্রিয়াকলাপেও ব্যবহার করতে পারেন:
- একটি খণ্ডের নিজস্ব জীবনচক্র থাকে এবং এর নিজস্ব ইনপুট ইভেন্টগুলি গ্রহণ করে।
- কার্যকলাপ চলাকালীন আপনি একটি খণ্ড যোগ করতে বা সরাতে পারেন।
- একটি টুকরা একটি Kotlin ক্লাসে সংজ্ঞায়িত করা হয়.
- একটি খণ্ডের UI একটি XML লেআউট ফাইলে সংজ্ঞায়িত করা হয়।
AndroidTrivia অ্যাপটির একটি প্রধান কার্যকলাপ এবং বেশ কয়েকটি খণ্ড রয়েছে৷ বেশিরভাগ অংশ এবং তাদের বিন্যাস ফাইলগুলি আপনার জন্য সংজ্ঞায়িত করা হয়েছে। এই টাস্কে, আপনি একটি খণ্ড তৈরি করুন এবং অ্যাপটির প্রধান কার্যকলাপে খণ্ডটি যোগ করুন।
ধাপ 1: একটি খণ্ড বর্গ যোগ করুন
এই ধাপে, আপনি একটি ফাঁকা TitleFragment
ক্লাস তৈরি করুন। একটি নতুন খণ্ডের জন্য একটি কোটলিন ক্লাস তৈরি করে শুরু করুন:
- অ্যান্ড্রয়েড স্টুডিওতে, প্রোজেক্ট ফাইলগুলিতে ফোকাস ফিরিয়ে আনতে প্রোজেক্ট ফলকের ভিতরে যে কোনও জায়গায় ক্লিক করুন। উদাহরণস্বরূপ, com.example.android.navigation ফোল্ডারে ক্লিক করুন।
- ফাইল > নতুন > ফ্র্যাগমেন্ট > ফ্র্যাগমেন্ট (ফাঁকা) নির্বাচন করুন।
- খণ্ডের নামের জন্য, TitleFragment ব্যবহার করুন। লেআউট XML তৈরি সহ সমস্ত চেকবক্স সাফ করুন, ফ্র্যাগমেন্ট ফ্যাক্টরি পদ্ধতি অন্তর্ভুক্ত করুন এবং ইন্টারফেস কলব্যাক অন্তর্ভুক্ত করুন ।
- শেষ ক্লিক করুন.
-
TitleFragment.kt
ফ্র্যাগমেন্ট ফাইলটি খুলুন, যদি এটি ইতিমধ্যে খোলা না থাকে। এটিতেonCreateView()
পদ্ধতি রয়েছে, যা একটি অংশের জীবনচক্রের সময় বলা হয় এমন একটি পদ্ধতি। -
setText
onCreateView()
-এ,return TextView(activity).apply
সরিয়ে দিন।onCreateView()
ফাংশনটি শুধুমাত্র নিম্নলিখিত কোড সহ বাকি আছে:
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
}
একটি বাঁধাই বস্তু তৈরি করুন
টুকরা এখন কম্পাইল করা হবে না. খণ্ডটি কম্পাইল করতে, আপনাকে একটি বাঁধাই অবজেক্ট তৈরি করতে হবে এবং খণ্ডটির দৃশ্যকে স্ফীত করতে হবে (যা একটি কার্যকলাপের জন্য setContentView()
ব্যবহার করার সমতুল্য)।
-
TitleFragment.kt
এ onCreateViewonCreateView()
পদ্ধতিতে, একটিbinding
ভেরিয়েবল তৈরি করুন (val binding
)। - ফ্র্যাগমেন্টের ভিউকে স্ফীত করতে, ফ্র্যাগমেন্টের
Binding
অবজেক্টেDataBindingUtil.inflate()
পদ্ধতিতে কল করুন, যা হলFragmentTitleBinding
।
পদ্ধতিতে চারটি পরামিতি পাস করুন:
-
inflater
, যাLayoutInflater
বাইন্ডিং লেআউটকে স্ফীত করতে ব্যবহৃত হয়। - লেআউটের এক্সএমএল লেআউট রিসোর্স স্ফীত করার জন্য। আপনার জন্য ইতিমধ্যে সংজ্ঞায়িত লেআউটগুলির একটি ব্যবহার করুন,
R.layout.fragment_title
। - অভিভাবক
ViewGroup
জন্যcontainer
। (এই প্যারামিটারটি ঐচ্ছিক।) -
attachToParent
মানের জন্যfalse
।
-
DataBindingUtil.inflate
binding
ভেরিয়েবলে রিটার্ন করে এমন বাইন্ডিং বরাদ্দ করুন। - প্রত্যাবর্তন
binding.root
পদ্ধতি থেকে, যেখানে স্ফীত দৃশ্য রয়েছে। আপনারonCreateView()
পদ্ধতিটি এখন নিম্নলিখিত কোডের মত দেখাচ্ছে:
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
val binding = DataBindingUtil.inflate<FragmentTitleBinding>(inflater,
R.layout.fragment_title,container,false)
return binding.root
}
ধাপ 2: প্রধান লেআউট ফাইলে নতুন খণ্ডটি যোগ করুন
এই ধাপে, আপনি অ্যাপের activity_main.xml
লেআউট ফাইলে TitleFragment
যোগ করুন।
- res > layout > activity_main.xml খুলুন এবং লেআউট XML কোড দেখতে টেক্সট ট্যাবে ক্লিক করুন।
- বিদ্যমান
LinearLayout
উপাদানের ভিতরে, একটিfragment
উপাদান যোগ করুন। - খণ্ডের
titleFragment
ফ্র্যাগমেন্টে সেট করুন। - ফ্র্যাগমেন্ট ক্লাসের পুরো পাথে ফ্র্যাগমেন্টের নাম সেট করুন, যা এই ক্ষেত্রে
com.example.android.navigation.TitleFragment
। - লেআউটের প্রস্থ এবং উচ্চতা
match_parent
সেট করুন।
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<fragment
android:id="@+id/titleFragment"
android:name="com.example.android.navigation.TitleFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>
</layout>
- অ্যাপটি চালান। খণ্ডটি আপনার প্রধান পর্দায় যোগ করা হয়েছে।
অ্যান্ড্রয়েড স্টুডিও প্রকল্প: অ্যান্ড্রয়েড ট্রিভিয়া ফ্র্যাগমেন্ট
এই কোডল্যাবে, আপনি AndroidTrivia অ্যাপে একটি অংশ যোগ করেছেন, যেটি আপনি এই পাঠের পরবর্তী দুটি কোডল্যাবে কাজ করতে থাকবেন।
- একটি খণ্ড হল একটি কার্যকলাপের একটি মডুলার বিভাগ।
- একটি খণ্ডের নিজস্ব জীবনচক্র থাকে এবং এর নিজস্ব ইনপুট ইভেন্টগুলি গ্রহণ করে।
- XML লেআউট ফাইলে ফ্র্যাগমেন্টের লেআউট নির্ধারণ করতে
<fragment>
ট্যাগ ব্যবহার করুন। -
onCreateView()
এ একটি খণ্ডের জন্য লেআউটটি স্ফীত করুন। - কার্যকলাপ চলাকালীন আপনি একটি খণ্ড যোগ করতে বা সরাতে পারেন।
উদাসীনতা কোর্স:
অ্যান্ড্রয়েড বিকাশকারী ডকুমেন্টেশন:
এই বিভাগে একজন প্রশিক্ষকের নেতৃত্বে একটি কোর্সের অংশ হিসাবে এই কোডল্যাবের মাধ্যমে কাজ করা শিক্ষার্থীদের জন্য সম্ভাব্য হোমওয়ার্ক অ্যাসাইনমেন্ট তালিকাভুক্ত করা হয়েছে। নিম্নলিখিতগুলি করা প্রশিক্ষকের উপর নির্ভর করে:
- প্রয়োজনে হোমওয়ার্ক বরাদ্দ করুন।
- শিক্ষার্থীদের সাথে যোগাযোগ করুন কিভাবে হোমওয়ার্ক অ্যাসাইনমেন্ট জমা দিতে হয়।
- হোমওয়ার্ক অ্যাসাইনমেন্ট গ্রেড.
প্রশিক্ষকরা এই পরামর্শগুলি যতটা কম বা যতটা চান ততটা ব্যবহার করতে পারেন, এবং তাদের উপযুক্ত মনে করে অন্য কোনও হোমওয়ার্ক বরাদ্দ করতে নির্দ্বিধায় করা উচিত।
আপনি যদি এই কোডল্যাবের মাধ্যমে নিজে থেকে কাজ করে থাকেন, তাহলে আপনার জ্ঞান পরীক্ষা করার জন্য এই হোমওয়ার্ক অ্যাসাইনমেন্টগুলি ব্যবহার করুন।
এই প্রশ্নগুলোর উত্তর দাও
প্রশ্ন 1
টুকরো এবং কার্যকলাপের মধ্যে কিছু পার্থক্য কি? সত্য যে সমস্ত বিবৃতি নির্বাচন করুন.
- একটি খণ্ড তৈরি করার সময়, আপনি
onCreateView()
পদ্ধতিতে লেআউটটি স্ফীত করেন। একটি কার্যকলাপ তৈরি করার সময়, আপনিonCreate()
-এ লেআউটটি স্ফীত করেন। - একটি কার্যকলাপের নিজস্ব লেআউট আছে, কিন্তু একটি খণ্ডের নিজস্ব বিন্যাস থাকতে পারে না।
- একটি ক্রিয়াকলাপের নিজস্ব জীবনচক্র আছে, কিন্তু একটি খণ্ডের নেই।
- একটি খণ্ড বা একটি কার্যকলাপের জন্য বিন্যাস স্ফীত করার সময়, আপনি
R.layout.
layoutname
প্রশ্ন 2
খন্ড সম্পর্কে নিচের কোন বিবৃতিটি সত্য? প্রযোজ্য সব নির্বাচন করুন.
- আপনি একাধিক কার্যকলাপে একটি খণ্ড ব্যবহার করতে পারেন।
- একটি কার্যকলাপ একাধিক টুকরা থাকতে পারে.
- আপনি একটি Kotlin ক্লাসে একটি খণ্ড সংজ্ঞায়িত করার পরে, খণ্ডটি স্বয়ংক্রিয়ভাবে
activity_main.xml
লেআউট ফাইলে যোগ করা হয়। - একটি লেআউট ফাইলে যেখানে একটি টুকরো ঢোকানো হবে সেখানে স্থান নির্ধারণ করতে
<fragment>
ট্যাগ ব্যবহার করুন।
পরবর্তী পাঠ শুরু করুন:
এই কোর্সে অন্যান্য কোডল্যাবগুলির লিঙ্কগুলির জন্য, Android Kotlin Fundamentals codelabs ল্যান্ডিং পৃষ্ঠাটি দেখুন।