इस कोडलैब में, आप पासा रोल करने वाला Android ऐप्लिकेशन बनाएंगे. इस ऐप्लिकेशन से उपयोगकर्ता, पासा फेंकने के लिए ऐप्लिकेशन में Button
पर क्लिक कर सकते हैं. रोल का नतीजा TextView
पर स्क्रीन पर दिखाया जाएगा.
अपना ऐप्लिकेशन लेआउट बनाने के लिए, आप Android Studio में लेआउट एडिटर का इस्तेमाल करेंगे. इसके बाद, Button
पर क्लिक होने पर क्या होता है, इसके लिए Kotlin कोड लिखें.
ज़रूरी बातें
- Android Studio में &कोटेशन, नमस्ते, वर्ल्ड!&कोटेशन बनाने, और चलाने का तरीका.
- किसी ऐप्लिकेशन में
TextViews
औरImageViews
का इस्तेमाल करने की जानकारी. - लेआउट एडिटर में,
TextView
के एट्रिब्यूट में बदलाव करने का तरीका. - अपने ऐप्लिकेशन का अनुवाद करना और स्ट्रिंग का फिर से इस्तेमाल करना आसान बनाने के लिए टेक्स्ट को स्ट्रिंग संसाधन में कैसे निकाला जाए.
- Kotlin प्रोग्रामिंग की बुनियादी बातें जो पिछले कोडलैब में सिखाई गई थीं.
आप इन चीज़ों के बारे में जानेंगे
- किसी Android ऐप्लिकेशन में
Button
जोड़ने का तरीका. Button
में किसी टैप किए जाने पर व्यवहार जोड़ने का तरीका.- किसी ऐप्लिकेशन के
Activity
कोड को खोलने और उसमें बदलाव करने का तरीका. Toast
मैसेज दिखाने का तरीका.- जब ऐप्लिकेशन चल रहा हो, तब
TextView
के कॉन्टेंट को अपडेट करने का तरीका.
आप क्या बनाएंगे #39;
- पासा फेंकने वाला Android ऐप्लिकेशन, जिसमें पासा फेंकने के लिए
Button
होता है. साथ ही, रोल की मदद से टेक्स्ट को स्क्रीन पर अपडेट करता है.
आपको इन चीज़ों की ज़रूरत पड़ेगी
- कंप्यूटर पर Android Studio इंस्टॉल किया गया हो.
जब आप यह कोडलैब पूरा कर लेंगे, तो ऐप्लिकेशन कुछ ऐसा दिखेगा.
एक खाली गतिविधि प्रोजेक्ट बनाएं
- अगर Android Studio में आपका पहले से कोई प्रोजेक्ट खुला है, तो नया प्रोजेक्ट बनाएं स्क्रीन खोलने के लिए, फ़ाइल > नया > नया प्रोजेक्ट... पर जाएं.
- नया प्रोजेक्ट बनाएं में, खाली गतिविधि टेंप्लेट का इस्तेमाल करके नया Kotlin प्रोजेक्ट बनाएं.
- कम से कम 19 (KitKat) वाले एपीआई लेवल के साथ, ऐप्लिकेशन को कोट करें.
अहम जानकारी: अगर आपको Android Studio में नया प्रोजेक्ट बनाने की जानकारी नहीं है, तो अपना पहला Android ऐप्लिकेशन बनाना और उसे चलाना जानकारी देखें.
- नया ऐप्लिकेशन चलाएं और यह कुछ ऐसा दिखना चाहिए.
लेआउट एडिटर खोलना
- प्रोजेक्ट विंडो में, इसे खोलने के लिए
activity_main.xml
(app > res > layout > activity_main.xml) पर दो बार क्लिक करें. आपको ऐप्लिकेशन के बीच में लेआउट एडिटर दिखेगा. इसमें सिर्फ़ &कोटेशन शामिल है;TextView
है.
इसके बाद, आप अपने ऐप्लिकेशन में Button
जोड़ेंगे. Android के उपयोगकर्ता के लिए, यूज़र इंटरफ़ेस (यूआई) एलिमेंट, Button
है. उपयोगकर्ता इस पर टैप करके, कोई कार्रवाई कर सकता है.
इस टास्क में, आप &कोट्स के नीचे Button
;नमस्ते वर्ल्ड&कोट</br>; TextView
जोड़ें. TextView
और Button
ConstraintLayout
के अंदर मौजूद होंगे. यह एक तरह का ViewGroup
है.
जब ViewGroup
में Views
होता है, तो Views
को माता-पिता ViewGroup
का बच्चे माना जाता है. आपके ऐप्लिकेशन के मामले में, TextView
और Button
को पैरंट ConstraintLayout
का बच्चा माना जाएगा.
अपने ऐप्लिकेशन में Button
को मौजूदा ConstraintLayout
के चाइल्ड के तौर पर जोड़ें.
लेआउट में बटन जोड़ें
Button
प्लेट व्यू से डिज़ाइन व्यू पर खींचें और उसे &कोटेशन के नीचे रखें; &Hello World&कोटेशन;TextView
.- कॉम्पोनेंट ट्री में पैलेट के नीचे, पुष्टि करें कि
Button
औरTextView
कोConstraintLayout
(ConstraintLayout
के बच्चों के तौर पर) में शामिल किया गया है. - गड़बड़ी पर ध्यान दें कि
Button
सीमित नहीं है.Button
ConstraintLayout
के अंदर बैठा हुआ है. इसलिए, आपको इसे पोज़िशन करने के लिए, वर्टिकल और हॉरिज़ॉन्टल कंस्ट्रेंट सेट करने होंगे.
बटन को सही जगह पर रखें
इस चरण में आप #39;ऊपर से ऊपर और नीचे TextView
तक एक वर्टिकल कंस्ट्रेंट जोड़ें. यह TextView
के नीचे Button
को दिखाएगा.
- डिज़ाइन व्यू में,
Button
के ऊपरी किनारे पर, सफ़ेद गोले को नीले बॉर्डर से दबाकर रखें. पॉइंटर को खींचें और एक तीर, पॉइंटर के साथ-साथ जाएगा. जब आप & &कोटेशन;नमस्ते वर्ल्ड&कोटेशन;TextView
के निचले किनारे पर पहुंच जाएं ऐसा करने से, लेआउट का कंस्ट्रेंट होता है औरButton
स्लाइड,TextView
के ठीक नीचे तक जाती है. - लेआउट एडिटर की दाईं ओर एट्रिब्यूट देखें.
- कंस्ट्रेंट विजेट में, नए लेआउट कंस्ट्रेंट को देखें जो
TextView
, टॉप → बॉटमऑफ़ टेक्स्टव्यू (0dp) के सबसे नीचे सेट होता है. (0dp) का मतलब है कि 0 का मार्जिन है. आपके पास हाॅरिज़ॉन्टल कंस्ट्रेंट मौजूद नहीं हैं. Button
की बाईं ओर से,ConstraintLayout
की बाईं ओर से हॉरिज़ॉन्टल कंस्ट्रेंट जोड़ें.- दाईं ओर दोहराएं,
Button
के दाएं किनारे कोConstraintLayout
के दाएं किनारे से कनेक्ट करें. परिणाम कुछ ऐसा दिखना चाहिए:
- अगर अब भी
Button
चुना हुआ है, तो कंस्ट्रेंट विजेट ऐसा दिखना चाहिए. जोड़ी गई दो और पाबंदियों पर ध्यान दें: Start → StartOf स्टोरी (0dp) और End → EndOf स्टोरी (0dp). इसका मतलब है किButton
हॉरिज़ॉन्टल रूप से अपने पैरंटConstraintLayout
के बीच में है.
- ऐप्लिकेशन चलाएं. यह नीचे दिए गए स्क्रीनशॉट की तरह दिखना चाहिए. आप
Button
पर क्लिक कर सकते हैं, लेकिन यह अभी तक #33 नहीं करता. आगे बढ़ते रहें!
बटन का टेक्स्ट बदलना
आप लेआउट एडिटरमें कुछ और यूज़र इंटरफ़ेस (यूआई) में बदलाव करने जा रहे हैं.
Button
लेबल को दिखाने के लिए "Button&kot;; देने के बजाय, इसे किसी ऐसी चीज़ में बदलें जो बटन के बारे में बताती हो: &कोटेशन;रोल&कोट करें..
- लेआउट एडिटर में, चुने गए
Button
के साथ, एट्रिब्यूट पर जाएं, टेक्स्ट को भूमिका में बदलें, औरEnter
(Mac परReturn
) दबाएं.
- कॉम्पोनेंट ट्री में
Button
के बगल में नारंगी रंग का चेतावनी वाला त्रिभुज दिखता है. पॉइंटर को त्रिभुज के ऊपर घुमाने पर, आपको एक मैसेज दिखेगा. Android Studio को आपके ऐप्लिकेशन कोड में, हार्डकोड की गई स्ट्रिंग (&kot;Roll&quat;) का पता चला है. हालांकि, यह आपको स्ट्रिंग रिसॉर्स का इस्तेमाल करने का सुझाव देता है.
हार्डकोड स्ट्रिंग होने का मतलब है कि ऐप्लिकेशन का अन्य भाषाओं में अनुवाद करना मुश्किल होगा और आपके ऐप्लिकेशन के अलग-अलग हिस्सों में स्ट्रिंग का फिर से इस्तेमाल करना मुश्किल होगा. सबसे अच्छी बात यह है कि Android Studio में आपके लिए अपने-आप समस्या ठीक हो जाती है.
- कॉम्पोनेंट ट्री में, नारंगी रंग के त्रिभुज पर क्लिक करें.
चेतावनी वाला पूरा मैसेज खुलता है.
- मैसेज में सबसे नीचे, सुझाए गए सुधार में जाकर, ठीक करें बटन पर क्लिक करें. (आपको नीचे स्क्रोल करना पड़ सकता है.)
- निकालें संसाधन डायलॉग खुलता है. स्ट्रिंग निकालने के लिए, &&tt[Roll &quat; टेक्स्ट लें और
strings.xml
मेंroll
नाम का स्ट्रिंग रिसॉर्स बनाएं (app > res > values > strings.xml). डिफ़ॉल्ट मान सही हैं, इसलिए OK पर क्लिक करें.
- ध्यान दें कि एट्रिब्यूट में
Button
के लिए, टेक्स्ट एट्रिब्यूट अब@string/roll
बताता है, जो आपके अभी बनाए गए संसाधन से जुड़ा है.
डिज़ाइन व्यू में, Button
को अब भी इस पर रोल करना चाहिए.
TextView को स्टाइल देना
& दर्ज करें!नमस्ते दुनिया!&कोटेशन; टेक्स्ट बहुत छोटा है और मैसेज आपके ऐप्लिकेशन के लिए सही है'टेक्स्ट.
- डिज़ाइन एडिटर में
TextView
चुनें, ताकि इसके एट्रिब्यूट एट्रिब्यूट विंडो में दिखें. TextView
के textSize को 36sp में बदलें, ताकि यह बड़ा और पढ़ने में आसान हो. textSize को ढूंढने के लिए, आपको स्क्रोल करना पड़ सकता है.
TextView
का टेक्स्ट एट्रिब्यूट मिटाएं. आपको उपयोगकर्ता कोTextView
में तब तक कुछ भी दिखाने की ज़रूरत नहीं है, जब तक उपयोगकर्ता उसे पास नहीं कर लेता.
हालांकि, जब आप अपने ऐप्लिकेशन के लेआउट और कोड में बदलाव कर रहे होते हैं, तब TextView
में कुछ टेक्स्ट देखना बहुत मददगार होता है. इस काम के लिए, आप TextView
में ऐसा टेक्स्ट जोड़ सकते हैं जो सिर्फ़ लेआउट की झलक के लिए दिखता है, लेकिन ऐप्लिकेशन के चलने पर नहीं.
.
- कॉम्पोनेंट ट्री में
TextView
को चुनें. - सामान्य एट्रिब्यूट में, text एट्रिब्यूट ढूंढें. इसके नीचे, टूल आइकॉन के साथ एक और text एट्रिब्यूट है. जब ऐप्लिकेशन चल रहा हो, तब उपयोगकर्ता को टेक्स्ट एट्रिब्यूट दिखाया जाएगा. टूल आइकॉन के साथ text एट्रिब्यूट, "tools text&kot; एट्रिब्यूट है जो सिर्फ़ आपके लिए डेवलपर के तौर पर है.
TextView
में, टूल टेक्स्ट को & में कोट करें. &&ott1;कोटेशन; केवल Android Studio के भीतर डिज़ाइन एडिटर में दिखाई देगा, लेकिन यह तब दिखाई नहीं देगा, जब आप ऐप्लिकेशन को किसी वास्तविक डिवाइस या एम्युलेटर पर चलाएंगे.
ध्यान दें कि इस टेक्स्ट को सिर्फ़ ऐप्लिकेशन डेवलपर देख सकते हैं, इसलिए आपको इसके लिए कोई स्ट्रिंग रिसॉर्स बनाने की ज़रूरत नहीं है.
- झलक में अपने ऐप्लिकेशन की झलक देखें. &कोटेशन आइकॉन दिख रहा है.
- अपना ऐप्लिकेशन चलाएं. जब ऐप्लिकेशन एम्युलेटर पर चलता है, तो ऐप्लिकेशन कुछ ऐसा दिखता है. &कोटेशन;1 नहीं दिखाया जा रहा है. यह सही व्यवहार है.
बहुत बढ़िया, आप लेआउट में बदलाव कर चुके हैं!
आपके पास बटन वाला ऐप्लिकेशन है, लेकिन बटन पर टैप करने से कुछ नहीं होगा. इसमें बदलाव करने के लिए, आपको कुछ Kotlin कोड लिखना होगा जो पासा रोल करने और बटन पर टैप करने से स्क्रीन को अपडेट कर देता है.
यह बदलाव करने के लिए, आपको यह समझना होगा कि किसी Android ऐप्लिकेशन की बनावट कैसी होती है.
Activity
से वह विंडो मिलती है जिसमें आपका ऐप्लिकेशन अपना यूज़र इंटरफ़ेस (यूआई) बनाता है. आम तौर पर, Activity
आपके रनिंग ऐप्लिकेशन की पूरी स्क्रीन पर दिखता है. हर ऐप्लिकेशन में एक या एक से ज़्यादा ऐक्टिविटी होती हैं. टॉप-लेवल या पहली गतिविधि को अक्सर MainActivity
कहा जाता है और इसे प्रोजेक्ट टेंप्लेट की मदद से उपलब्ध कराया जाता है. उदाहरण के लिए, जब उपयोगकर्ता अपने डिवाइस पर मौजूद ऐप्लिकेशन की सूची को स्क्रोल करता है और &Diot&Dice Roller&cot; ऐप्लिकेशन आइकॉन पर टैप करता है, तो Android सिस्टम ऐप्लिकेशन का MainActivity
शुरू करेगा.
अपने MainActivity
कोड में, आपको Activity
's लेआउट के बारे में जानकारी देनी होगी. साथ ही, यह भी बताना होगा कि उपयोगकर्ता को उसके साथ कैसे इंटरैक्ट करना चाहिए.
- जन्मदिन कार्ड ऐप्लिकेशन में
Activity
मौजूद होता है, जो जन्मदिन के मैसेज और इमेज दिखाता है. - Dice Roller ऐप्लिकेशन में, एक
Activity
होता है, जोTextView
औरButton
का लेआउट अभी-अभी बनाया गया है.
ज़्यादा जटिल ऐप्लिकेशन के लिए, एक से ज़्यादा स्क्रीन हो सकती हैं और एक से ज़्यादा Activity
हो सकते हैं. हर Activity
का एक खास मकसद होता है.
उदाहरण के लिए, किसी फ़ोटो गैलरी ऐप्लिकेशन में, आप फ़ोटो के ग्रिड को दिखाने के लिए Activity
, अलग-अलग फ़ोटो देखने के लिए Activity
, और हर फ़ोटो में बदलाव करने के लिए तीसरा Activity
रख सकते हैं.
MainActivity.kt फ़ाइल खोलें
MainActivity
में किसी बटन पर टैप करने के लिए, आप कोड जोड़ेंगे. इसे सही तरीके से करने के लिए, आपको अपने ऐप्लिकेशन में पहले से मौजूद MainActivity
कोड के बारे में ज़्यादा जानना होगा.
MainActivity.kt
फ़ाइल पर जाएं और खोलें (app > java > com.example.diceroller > MainActivity.kt). नीचे आपको देखना चाहिए. अगर आपकोimport...
दिखता है, तो इंपोर्ट की जानकारी को बड़ा करने के लिए,...
पर क्लिक करें.
package com.example.diceroller
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
आपको ऊपर दिए गए कोड के हर शब्द को समझना नहीं है, लेकिन आपको इसके बारे में सामान्य जानकारी होनी चाहिए. आप जितना ज़्यादा Android कोड के साथ काम करेंगे, यह आपको उतना ही ज़्यादा जाने-माने जाएगा और आप इसे #39 के तौर पर पहचान पाएंगे.
MainActivity
क्लास के लिए Kotlin कोड देखें. इसेclass
कीवर्ड और फिर नाम से पहचाना जा सकता है.
class MainActivity : AppCompatActivity() {
...
}
- ध्यान दें कि आपके
MainActivity
मेंmain()
फ़ंक्शन नहीं है.
शुरुआत में, आपको पता चला था कि हर Kotlin प्रोग्राम मेंmain()
फ़ंक्शन होना चाहिए. Android ऐप्लिकेशन अलग तरह से काम करते हैं.main()
फ़ंक्शन को कॉल करने के बजाय, जब आपका ऐप्लिकेशन पहली बार खोला जाता है, तो Android सिस्टम आपकेMainActivity
केonCreate()
तरीके को कॉल करता है. - नीचे दिए गए कोड जैसा दिखने वाला
onCreate()
तरीका ढूंढें.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
आप बाद में कोडलैब (कोड बनाना सीखना) में override
के बारे में जानेंगे (इसलिए, इसे अभी इस्तेमाल न करें). बाकी के onCreate()
तरीके से MainActivity
सेट अप किया जाता है. इसके लिए, इंपोर्ट से मिले कोड का इस्तेमाल किया जाता है और शुरुआती लेआउट को setContentView()
के साथ सेट किया जाता है.
import
से शुरू होने वाली लाइनें देखें.
Android ऐप्लिकेशन को लिखना आसान बनाने के लिए, Android कई क्लास की फ़्रेमवर्क उपलब्ध कराता है. हालांकि, यह जानना ज़रूरी है कि असल में आपकी क्लास क्या है. आप import
स्टेटमेंट का इस्तेमाल करके, यह तय कर सकते हैं कि आपके कोड में किस क्लास का इस्तेमाल करना है. उदाहरण के लिए, Button
क्लास को android.widget.Button
में परिभाषित किया गया है.
अपने आप इंपोर्ट करने की सुविधा चालू करें
जब आप ज़्यादा क्लास का इस्तेमाल करते हैं, तो import
स्टेटमेंट जोड़ना काफ़ी मेहनत का काम हो सकता है. सबसे अच्छी बात यह है कि जब आप अन्य लोगों की ओर से दी गई क्लास इस्तेमाल कर रहे होते हैं, तब Android Studio सही इंपोर्ट करने में आपकी मदद करता है. इस चरण में आप जब चाहें, Android Studio को इंपोर्ट और अपने-आप इंपोर्ट होने से रोकने के लिए, Android Studio को कॉन्फ़िगर करेंगे.
- Android Studio में, फ़ाइल > अन्य सेटिंग > नए प्रोजेक्ट के लिए प्राथमिकताएं पर जाकर सेटिंग खोलें.
- अन्य सेटिंग; ऑटो इंपोर्ट को बड़ा करें. Java और Kotlin सेक्शन में पक्का करें कि बिना इंपोर्ट किए, आसानी से इंपोर्ट किए जा सकने वाले आइटम जोड़ें. साथ ही, ऑप्टिमाइज़ इंपोर्ट को तुरंत (प्रोजेक्ट के लिए) चुनें. ध्यान दें कि हर सेक्शन में दो चेकबॉक्स होते हैं.
असामान्य इंपोर्ट सेटिंग, Android Studio को इंपोर्ट स्टेटमेंट अपने-आप जोड़ने की अनुमति देती है. ऐसा तब तक किया जा सकता है, जब तक यह तय करता है कि कौनसा स्टेटमेंट इस्तेमाल करना है. इंपोर्ट ऑप्टिमाइज़ सेटिंग Android Studio को उन सभी इंपोर्ट को हटाने के लिए कहती है जिनका इस्तेमाल आपके कोड से नहीं किया जा रहा है. - बदलावों को सेव करने के लिए और ठीक है दबाकर सेटिंग बंद करें.
अब आप MainActivity
के बारे में कुछ और जान चुके हैं, इसलिए आप ऐप्लिकेशन में बदलाव करेंगे, ताकि Button
पर क्लिक करके स्क्रीन पर कुछ किया जा सके.
बटन क्लिक होने पर मैसेज दिखाना
इस चरण में, आप तय करेंगे कि बटन पर क्लिक होने पर, स्क्रीन के नीचे एक छोटा सा मैसेज दिखे.
setContentView()
कॉल के बाद इस तरीके कोonCreate()
तरीके से जोड़ें.findViewById()
तरीके को लेआउट मेंButton
मिलता है.R.id.button
,Button
का रिसॉर्स आईडी है, जो इसका यूनीक आइडेंटिफ़ायर है. यह कोड,rollButton
ऑब्जेक्ट मेंButton
ऑब्जेक्ट की पहचान सेव करता है, न किButton
ऑब्जेक्ट में.
val rollButton: Button = findViewById(R.id.button)
कोड, Button
ऑब्जेक्ट के रेफ़रंस को rollButton
वैरिएबल में सेव करता है, न कि Button
ऑब्जेक्ट में.
onCreate()
विधि अब कुछ इस तरह दिखाई देनी चाहिए.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val rollButton: Button = findViewById(R.id.button)
}
- पुष्टि करें कि Android Studio ने
Button
के लिए, अपने-आपimport
स्टेटमेंट जोड़ा है.
ध्यान दें कि अब तीन इंपोर्ट स्टेटमेंट हैं—तीसरा स्टेटमेंट अपने-आप जुड़ गया है.
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
इसके बाद, आपको कोड को Button
से जोड़ना होगा, ताकि Button
पर टैप करने के बाद कोड को चलाया जा सके. क्लिक लिसनर एक कोड होता है, जो बताता है कि टैप या क्लिक होने पर क्या करना चाहिए. यह एक ऐसा कोड है जो साइट पर अभी-अभी रखा गया है. जैसे कि उपयोगकर्ता के क्लिक करने पर & &कोटेशन इस्तेमाल करने का कोटेशन. इस मामले में Button
पर क्लिक करें.
rollButton
ऑब्जेक्ट का इस्तेमाल करें औरsetOnClickListener()
तरीके को कॉल करके, क्लिक लिसनर सेट करें.
rollButton.setOnClickListener {
}
लिखते ही, Android Studio एक से ज़्यादा सुझाव दिखा सकता है. इस मामले के लिए, setOnClickListener{0}...} विकल्प चुनें.
कर्ली ब्रैकेट में, आप निर्देश देते हैं कि बटन टैप करने पर क्या होना चाहिए. फ़िलहाल, आपको और #39;आपके ऐप्लिकेशन में Toast
दिखेगा, जो उपयोगकर्ता को एक छोटा सा मैसेज होगा.
Toast.makeText()
को कॉल करके, टेक्स्टToast
के साथ"Dice Rolled!"
बनाएं.
val toast = Toast.makeText(this, "Dice Rolled!", Toast.LENGTH_SHORT)
- इसके बाद,
show()
तरीके को कॉल करके,Toast
को खुद को दिखाने के लिए कहें.
toast.show()
अपडेट की गई आपकी MainActivity
कक्षा इस तरह दिखती है; package
और import
स्टेटमेंट अब भी फ़ाइल में सबसे ऊपर मौजूद हैं:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val rollButton: Button = findViewById(R.id.button)
rollButton.setOnClickListener {
val toast = Toast.makeText(this, "Dice Rolled!", Toast.LENGTH_SHORT)
toast.show()
}
}
}
आप क्लिक लिसनर की दो लाइन को बिना वैरिएबल के एक लाइन में जोड़ सकते हैं. यह एक सामान्य पैटर्न है, जो आपको दूसरे कोड में मिल सकता है.
Toast.makeText(this, "Dice Rolled!", Toast.LENGTH_SHORT).show()
- ऐप्लिकेशन चलाएं और रोल करें बटन पर क्लिक करें. टोस्ट संदेश स्क्रीन के नीचे पॉप अप होना चाहिए और कुछ समय बाद गायब हो जाना चाहिए.
बहुत बढ़िया! बटन क्लिक करने से मैसेज पॉप-अप हो गया! आपने पहली बार Android के लिए Kotlin कोड लिखा है!
बटन क्लिक होने पर TextView अपडेट करें
कुछ समय के लिए Toast
मैसेज दिखाने के बजाय, आप स्क्रीन पर TextView
को अपडेट करने के लिए, रोल बटन पर क्लिक करने से कोड लिखेंगे.
activity_main.xml
पर वापस जाएं (app > res > layout >activity_main.xml)TextView
पर क्लिक करें.- ध्यान दें कि id textView है.
MainActivity.kt
(app > java > com.example.diceroller > MainActivity.kt) खोलें- ऐसे कोड की लाइनों को मिटाएं जो
Toast
बनाते हैं और दिखाते हैं.
rollButton.setOnClickListener {
}
- उनकी जगह,
TextView
को स्टोर करने के लिएresultTextView
नाम का नया वैरिएबल बनाएं. findViewById()
के आईडी का इस्तेमाल करके, लेआउट मेंtextView
को ढूंढें और उसका रेफ़रंस स्टोर करें.
val resultTextView: TextView = findViewById(R.id.textView)
resultTextView
के टेक्स्ट को कोटेशन में '&कोट' करने के लिए सेट करें.
resultTextView.text = "6"
यह वैसा ही है जैसा आपने एट्रिब्यूट में text सेट करके किया था, लेकिन अब यह आपके कोड में है #39;, इसलिए टेक्स्ट डबल कोट के निशान के अंदर होना चाहिए. इस सेटिंग को साफ़ तौर पर सेट करने का मतलब है कि फ़िलहाल TextView
, हमेशा 6 दिखाता है. पासा रोल करने और अगले टास्क में अलग-अलग मान दिखाने के लिए, आपको कोड जोड़ना होगा.
MainActivity
क्लास कुछ इस तरह दिखेगी:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val rollButton: Button = findViewById(R.id.button)
rollButton.setOnClickListener {
val resultTextView: TextView = findViewById(R.id.textView)
resultTextView.text = "6"
}
}
}
- ऐप्लिकेशन चलाएं. बटन पर क्लिक करें. इसे
TextView
को &606;6&कोटेशन पर अपडेट करना चाहिए.
सिर्फ़ एक चीज़ जो पास नहीं है वह असल में पासा फेंकती है. आप पिछले कोडलैब (कोड बनाना सीखना) से Dice
क्लास का फिर से इस्तेमाल कर सकते हैं, जो पासा फेंकने के तर्क को संभालता है.
पासा जोड़ें
MainActivity
क्लास में आखिरी कर्ली ब्रैकेट के बाद,roll()
तरीके का इस्तेमाल करकेDice
क्लास बनाएं.
class Dice(val numSides: Int) {
fun roll(): Int {
return (1..numSides).random()
}
}
- ध्यान दें कि Android Studio, स्लेटी रंग की रेखाओं के साथ
numSides
को अंडरलाइन करता है. (इसे दिखने में कुछ समय लग सकता है.) - अपने कर्सर को
numSides
पर घुमाएं और आपको एक पॉप-अप दिखेगा, जिसमें लिखा होगा प्रॉपर्टी 'numSides' निजी हो सकता है.
numSides
को private
के तौर पर मार्क करने से, यह सिर्फ़ Dice
क्लास में ऐक्सेस किया जा सकेगा. numSides
का इस्तेमाल करने वाला सिर्फ़ एक कोड Dice
क्लास के अंदर होगा. इसलिए, Dice
क्लास के लिए इस आर्ग्युमेंट को private
बनाना ठीक है. आपको अगली यूनिट में private
बनाम public
वैरिएबल के बारे में ज़्यादा जानकारी मिलेगी.
- आगे बढ़ें और बनाएं 'numSides' 'private' पर क्लिक करके Android Studio से सुझाए गए सुधार करें.
RollDice() तरीका बनाना
अब आपने ##39;Dice
को अपने ऐप्लिकेशन में जोड़ लिया है, तो आपको और #39;MainActivity
का इस्तेमाल करने के लिए उसे अपडेट करना होगा. कोड को बेहतर तरीके से व्यवस्थित करने के लिए, पासा लगाने की सभी प्रक्रिया को एक फ़ंक्शन में रखें.
- क्लिक लिसनर में उस कोड को बदलें, जो टेक्स्ट को
rollDice()
पर कॉल करके "6" पर सेट करता है.
rollButton.setOnClickListener {
rollDice()
}
- फ़िलहाल,
rollDice()
को #39; तय नहीं किया गया है, इसलिए Android Studio में कोई गड़बड़ी है और वहrollDice()
को लाल रंग में दिखाता है. - अगर आप अपना पॉइंटर
rollDice()
पर घुमाते हैं, तो Android Studio समस्या और कुछ संभावित समाधान दिखाता है.
- ज़्यादा कार्रवाइयां... पर क्लिक करें जिससे मेन्यू दिखता है. Android Studio में आपको और भी ज़्यादा काम करने की सुविधा मिलती है!
- फ़ंक्शन बनाएं 'rollDice' चुनें. Android Studio,
MainActivity
में फ़ंक्शन के लिए एक खाली परिभाषा बनाता है.
private fun rollDice() {
TODO("Not yet implemented")
}
पासे वाला नया ऑब्जेक्ट इंस्टेंस बनाएं
इस चरण में आप rollDice()
# पासा बनाकर पासा फेंक सकते हैं और फिर नतीजे को TextView
में दिखा सकते हैं.
rollDice()
के अंदर,TODO()
कॉल मिटाएं.- 6 साइड वाला पासा बनाने के लिए कोड जोड़ें.
val dice = Dice(6)
roll()
वाले तरीके को कॉल करके पासा फेंकें और नतीजे कोdiceRoll
नाम के वैरिएबल में सेव करें.
val diceRoll = dice.roll()
findViewById()
को कॉल करके,TextView
को ढूंढें.
val resultTextView: TextView = findViewById(R.id.textView)
diceRoll
वैरिएबल एक संख्या है, लेकिन TextView
टेक्स्ट का इस्तेमाल करता है. आप diceRoll
पर toString()
तरीके का इस्तेमाल करके, इसे स्ट्रिंग में बदल सकते हैं.
diceRoll
को एक स्ट्रिंग में बदलें और उसका इस्तेमालresultTextView
का टेक्स्ट अपडेट करने के लिए करें.
resultTextView.text = diceRoll.toString()
rollDice()
तरीका ऐसा दिखता है:
private fun rollDice() {
val dice = Dice(6)
val diceRoll = dice.roll()
val resultTextView: TextView = findViewById(R.id.textView)
resultTextView.text = diceRoll.toString()
}
- अपना ऐप्लिकेशन चलाएं. पासे वाले नतीजे, 6 के अलावा अन्य वैल्यू में बदले जाने चाहिए! हालांकि, यह 1 से 6 तक का कोई भी नंबर हो सकता है, इसलिए वैल्यू 6 भी कभी-कभी दिख सकती है.
या हू!
आपके ऐप्लिकेशन के काम करने के लिए, अलग-अलग हिस्सों को ठीक करने के बाद कोड में गड़बड़ी होना आम बात है. हालांकि, कोड हटाने से पहले आपको कुछ आसान टास्क करने चाहिए. इससे ऐप्लिकेशन अच्छी स्थिति में रहेगा और आगे भी उसे आसानी से जारी रखा जा सकेगा.
अपना कोड लिखते समय, Android डेवलपर इन तरीकों का इस्तेमाल करते हैं.
Android स्टाइल गाइड
जब आप टीम के साथ काम करते हैं, तो यह टीम के सदस्यों के लिए इसी तरह का कोड लिखने का सबसे अच्छा तरीका है. इसलिए, कोड में एक जैसा और #39; इसलिए, Android की स्टाइल गाइड का इस्तेमाल, Android कोड लिखने का तरीका जानने के लिए किया जाता है. इसमें नाम रखने के तरीके, फ़ॉर्मैटिंग, और अन्य अच्छी बातों के बारे में बताया गया है. Android कोड लिखते समय इन दिशा-निर्देशों का पालन करें: Android डेवलपर के लिए Kotlin स्टाइल गाइड.
स्टाइल गाइड का पालन करने के कुछ तरीके नीचे दिए गए हैं.
अपने कोड में जगह खाली करें
अपना कोड छोटा करें
आप कोड को छोटी लाइनों में शामिल करके, अपने कोड को और छोटा बना सकते हैं. उदाहरण के लिए, यहां वह कोड दिया गया है जो Button
पर क्लिक लिसनर सेट करता है.
rollButton.setOnClickListener {
rollDice()
}
क्लिक लिसनर के लिए निर्देश सिर्फ़ 1 लाइन लंबे होते हैं, इसलिए आप rollDice()
तरीके का कॉल और कर्ली ब्रैकेट एक लाइन में शामिल कर सकते हैं. यह कुछ ऐसा दिखेगा. तीन लाइन के बजाय एक लाइन!
rollButton.setOnClickListener { rollDice() }
कोड को फिर से फ़ॉर्मैट करें
अब आप अपने कोड को फिर से फ़ॉर्मैट कर सकते हैं, ताकि यह पक्का किया जा सके कि वह Android के लिए सुझाए गए कोड फ़ॉर्मैटिंग के नियमों का पालन करता है.
MainActivity.kt
क्लास में, Windows पर कीबोर्ड शॉर्टकटControl+A
(या Mac परCommand+A
) के साथ फ़ाइल में सभी टेक्स्ट चुनें. इसके अलावा, आप Android Studio के 'बदलाव करें; और सभी' मेन्यू में जाकर भी बदलाव करें चुनें.- फ़ाइल में चुने गए सभी टेक्स्ट के साथ, Android Studio मेन्यू Code > Reformat Code पर जाएं या कीबोर्ड शॉर्टकट
Ctrl+Alt+L
(या Mac परCommand+Option+L
) का इस्तेमाल करें.
यह आपके कोड की फ़ॉर्मैटिंग को अपडेट करता है, जिसमें खाली सफ़ेद जगह, इंडेंट वगैरह शामिल हैं. हो सकता है कि आपको कोई बदलाव न दिखे और यह #39; अच्छी बात है. आपका कोड पहले ही सही तरीके से फ़ॉर्मैट किया गया था!
अपने कोड पर टिप्पणी करें
अपने कोड में कुछ टिप्पणियां जोड़ें और बताएं कि आपके लिखे गए कोड में क्या हो रहा है. जैसे-जैसे कोड और जटिल होता जाता है, यह नोट करना भी महत्वपूर्ण हो जाता है कि आपने कोड को अपने तरीके से काम करने के लिए क्यों लिखा. अगर आप कोड में बाद में बदलाव करने के लिए वापस आते हैं, तो हो सकता है कि कोड क्या साफ़ नज़र आए. हालांकि, हो सकता है कि आपको याद न रहे कि आपने उसे वैसे ही क्यों लिखा था.
हर क्लास के लिए टिप्पणी जोड़ना (आपके ऐप्लिकेशन में सिर्फ़ MainActivity
और Dice
क्लास हैं) और आप जो भी तरीका लिखते हैं, दोनों शामिल होते हैं. अपनी टिप्पणी की शुरुआत और आखिर में /**
और **/
सिंबल का इस्तेमाल करके, सिस्टम को बताएं कि यह कोड नहीं है. जब सिस्टम आपका कोड लागू करेगा, तो इन लाइनों को अनदेखा कर दिया जाएगा.
कक्षा पर की गई टिप्पणी का उदाहरण:
/**
* This activity allows the user to roll a dice and view the result
* on the screen.
*/
class MainActivity : AppCompatActivity() {
किसी तरीके पर की गई टिप्पणी का उदाहरण:
/**
* Roll the dice and update the screen with the result.
*/
private fun rollDice() {
किसी तरीके में, अगर आप कोड को पढ़ने वाले व्यक्ति की मदद करना चाहते हैं, तो मुफ़्त में टिप्पणी जोड़ सकते हैं. याद रखें कि आप अपनी टिप्पणी की शुरुआत में //
के निशान का इस्तेमाल कर सकते हैं. लाइन पर //
के निशान के बाद की सभी चीज़ें एक टिप्पणी मानी जाती है.
किसी तरीके में शामिल दो टिप्पणियों का उदाहरण:
private fun rollDice() {
// Create new Dice object with 6 sides and roll it
val dice = Dice(6)
val diceRoll = dice.roll()
// Update the screen with the dice roll
val resultTextView: TextView = findViewById(R.id.textView)
resultTextView.text = diceRoll.toString()
}
- आगे बढ़ें और अपने कोड पर टिप्पणियां जोड़ने के लिए कुछ समय निकालें.
- इन सभी टिप्पणी और फ़ॉर्मैटिंग बदलावों के साथ, यह पक्का करने के लिए कि आपका ऐप्लिकेशन अब भी उम्मीद के मुताबिक काम कर रहा है, अपना ऐप्लिकेशन फिर से चला सकते हैं.
समाधान कोड को उस तरीके से देखें जिससे आप अपने कोड पर टिप्पणी कर पाते थे.
इस कोडलैब के लिए सॉल्यूशन कोड, नीचे दिए गए प्रोजेक्ट और मॉड्यूल में मौजूद है.
GitHub से इस कोडलैब का कोड पाने और इसे Android Studio में खोलने के लिए, ये काम करें.
- Android Studio शुरू करें.
- Android Studio में आपका स्वागत है विंडो पर, वर्शन कंट्रोल से प्रोजेक्ट देखें पर क्लिक करें.
- उपहार चुनें.
- Clone Repository डायलॉग में, दिए गए कोड यूआरएल को URL बॉक्स में चिपकाएं.
- जांचें बटन पर क्लिक करें और इंतज़ार करें. इसके बाद, पक्का करें कि स्क्रीन पर एक हरा पॉप-अप बबल दिख रहा है, जिसमें लिखा है कि कनेक्शन जोड़ लिया गया है.
- इसके अलावा, आप डायरेक्ट्री को सुझाए गए डिफ़ॉल्ट से अलग कुछ भी बदल सकते हैं.
- क्लॉन पर क्लिक करें. Android Studio आपका कोड फ़ेच करना शुरू कर देता है.
- वर्शन कंट्रोल से चेकआउट पॉप-अप में, हां पर क्लिक करें.
- Android Studio के खुलने का इंतज़ार करें.
- अपने कोडलैब स्टार्टर या सॉल्यूशन कोड के लिए सही मॉड्यूल चुनें.
- अपना कोड बनाने और चलाने के लिए, चलाएं बटन
पर क्लिक करें.
- लेआउट एडिटर का इस्तेमाल करके Android ऐप्लिकेशन में
Button
जोड़ें. - ऐप्लिकेशन में इंटरैक्टिव व्यवहार जोड़ने के लिए,
MainActivity.kt
क्लास में बदलाव करें. Toast
मैसेज की पुष्टि कुछ समय के लिए करें. इससे यह पुष्टि की जाती है कि आप सही ट्रैक पर हैं.Button
के क्लिक किए जाने पर व्यवहार जोड़ने के लिएsetOnClickListener()
का इस्तेमाल करकेButton
के लिए क्लिक पर पहचानकर्ता सेट करें.- जब ऐप्लिकेशन चल रहा हो, तो आप लेआउट में
TextView
,Button
या यूज़र इंटरफ़ेस (यूआई) एलिमेंट के ज़रिए कॉल करने के तरीकों को कॉल करके स्क्रीन अपडेट कर सकते हैं. - आपका कोड पढ़ने वाले अन्य लोगों को यह समझने में मदद करने के लिए अपने कोड पर टिप्पणी करें कि आप क्या करना चाहते हैं.
- अपना कोड फिर से फ़ॉर्मैट करें और कोड हटाएं.
Button
क्लासToast
क्लासTextView
क्लास- Android डेवलपर के लिए Kotlin स्टाइल गाइड
ये करें:
- ऐप्लिकेशन में दूसरा पासा जोड़ें. भूमिका बटन पर क्लिक करने से दो पासे घूमने चाहिए. नतीजे, स्क्रीन पर दो अलग-अलग
TextViews
पर दिखने चाहिए.
अपने काम की जांच करें:
आपका पूरा हो चुका ऐप्लिकेशन बिना किसी गड़बड़ी के चलना चाहिए और ऐप्लिकेशन में दो पासे दिखने चाहिए.