புரோஹோஸ்டர் > Блог > இணைய செய்தி > கோட்லினில் டிப் கால்குலேட்டரை உருவாக்குதல்: இது எப்படி வேலை செய்கிறது?
கோட்லினில் டிப் கால்குலேட்டரை உருவாக்குதல்: இது எப்படி வேலை செய்கிறது?
கோட்லினில் உதவிக்குறிப்புகளைக் கணக்கிடுவதற்கான எளிய பயன்பாட்டை எவ்வாறு உருவாக்குவது என்பதை நாங்கள் உங்களுக்குச் சொல்கிறோம். இன்னும் துல்லியமாக, கோட்லின் 1.3.21, ஆண்ட்ராய்டு 4, ஆண்ட்ராய்டு ஸ்டுடியோ 3. கட்டுரை ஆண்ட்ராய்டு பயன்பாட்டு மேம்பாட்டில் தங்கள் பயணத்தைத் தொடங்குபவர்களுக்கு முதலில் சுவாரஸ்யமாக இருக்கும். பயன்பாட்டிற்குள் என்ன, எப்படி வேலை செய்கிறது என்பதைப் புரிந்துகொள்ள இது உங்களை அனுமதிக்கிறது.
ஒரு உணவகம் அல்லது ஓட்டலில் நேரத்தை செலவிட முடிவு செய்யும் நிறுவனத்தின் உதவிக்குறிப்புகளின் அளவை நீங்கள் கணக்கிட வேண்டியிருக்கும் போது இந்த கால்குலேட்டர் கைக்கு வரும். நிச்சயமாக, எல்லோரும் எப்போதும் பணியாளர்களுக்கு ஒரு உதவிக்குறிப்பை விட்டுவிடுவதில்லை; இது ஒரு மேற்கத்திய பாரம்பரியம், ஆனால் அத்தகைய பயன்பாட்டை உருவாக்கும் செயல்முறை எந்தவொரு சந்தர்ப்பத்திலும் சுவாரஸ்யமானது.
நாங்கள் நினைவூட்டுகிறோம்:"Habr" இன் அனைத்து வாசகர்களுக்கும் - "Habr" விளம்பரக் குறியீட்டைப் பயன்படுத்தி எந்த Skillbox படிப்பிலும் சேரும்போது 10 ரூபிள் தள்ளுபடி.
மொத்தத் தொகையின் விரும்பிய சதவீதத்தை, கூட்டத்தில் பங்கேற்பாளர்களின் எண்ணிக்கையை உள்ளிட்டு, முடிவைப் பெறுங்கள் - நீங்கள் விட்டுச் செல்ல வேண்டிய உதவிக்குறிப்பின் அளவு.
தொடங்குதல்
முழுமையான பயன்பாட்டு இடைமுகம் இதுபோல் தெரிகிறது:
முதல் செயல் - திட்டத்தின் தளத்தைப் பதிவிறக்குகிறது. Android Studio 3.0 அல்லது அதற்குப் பிறகு அதைத் திறக்கவும். நாங்கள் திட்டத்தை உருவாக்கி தொடங்குகிறோம் மற்றும் ஒரு வெள்ளைத் திரையைப் பார்க்கிறோம். எல்லாம் நன்றாக இருக்கிறது, அது எப்படி இருக்க வேண்டும்.
எல்லாவற்றையும் தெளிவுபடுத்துவதற்காக பயனர் செயல்கள் திட்டத்தில் காலவரிசைப்படி எழுதப்பட்டுள்ளன. அதைப் பார்க்க, View -> Tool Windows -> TODO என்பதைத் திறக்கவும்.
நாங்கள் திட்டத்தைப் படித்து, வண்ணத் தட்டுகளை மதிப்பிடுவதற்கு color.xml ஐத் திறக்கிறோம். strings.xml உரைத் தரவு (கையொப்பங்கள்) மற்றும் styles.xml பல எழுத்துரு டெம்ப்ளேட்களைக் கொண்டுள்ளது.
செலவு பிரிவு வளர்ச்சி
activity_main.xml ஐத் திறந்து கீழே உள்ள குறியீட்டை LinearLayout இல் சேர்க்கவும் (#1):
உணவகக் கூட்டத்தில் ஒவ்வொரு பங்கேற்பாளருக்கான தனிப்பட்ட செலவுகளைக் கணக்கிடுவதே பயன்பாட்டின் முக்கிய பணியாக இருப்பதால், costPerPersonTextView முக்கிய பங்கு வகிக்கிறது.
EditText உள்ளீட்டை ஒரு வரியாகக் கட்டுப்படுத்துகிறது, இந்த அளவுருவை எண் டெசிமல் உள்ளீட்டு வகைக்கு அமைக்க வேண்டும்.
சோதனைக்கான திட்டத்தை நாங்கள் தொடங்குகிறோம் மற்றும் பொதுவான சேதத்திற்கான அளவுருக்களை உள்ளிடுகிறோம் (உடைந்த கோப்பைகள், தட்டுகள் போன்றவை)
"மக்கள் மற்றும் குறிப்புகள்" பிரிவின் வளர்ச்சி
டிப் வால்யூம் தேர்வைச் சேர்க்க, கீழே உள்ள குறியீட்டை புதிய லீனியர் லேஅவுட் பிரிவில் (#4) ஒட்டவும்:
குறிப்புத் தொகையைத் துல்லியமாகக் கணக்கிட இந்தக் குறியீட்டின் பிரிவு அவசியம். இயல்புநிலை உரை மதிப்பு 20. எழுத்து அனுமதியுடன் கூடிய கோப்புறையில் பட பொத்தான்கள் ஐகான்களுடன் வழங்கப்படுகின்றன.
பிரிவை முழுவதுமாக நகலெடுத்து பின்வருவனவற்றைச் சேர்க்கவும் (#5):
ImageButton ஐடிகள் (PeopleButton, addPeopleButton ஆகியவற்றைக் கழிக்கவும்)
numberOfPeopleTextView க்கான DefaultText (4 ஆக இருக்க வேண்டும்).
இப்போது, நீங்கள் பயன்பாட்டைத் தொடங்கும்போது, விலைப்பட்டியல் தொகையைச் சேர்க்க ஒரு வாய்ப்பு உள்ளது, "சேர் / கழித்தல்" பொத்தான்களும் வேலை செய்கின்றன, ஆனால் எதுவும் நடக்கவில்லை.
பார்வைகளைச் சேர்த்தல்
MainActivity.kt ஐத் திறந்து, initViews செயல்பாட்டில் இதைச் சேர்க்கவும் (#6):
பொத்தான்கள் மற்றும் சுவிட்சுகளின் அடிப்படையில், கோட்லின் எல்லாவற்றையும் மிகவும் அருமையாக ஒழுங்கமைக்கிறது! அனைத்து அதிகரிப்பு மற்றும் குறைப்பு செயல்பாடுகளுக்கும் கீழே உள்ள குறியீட்டைச் சேர்க்கவும்
(#9 - #12):
private fun incrementTip() {
if (tipPercent != MAX_TIP) {
tipPercent += TIP_INCREMENT_PERCENT
tipTextView.text = String.format("%d%%", tipPercent)
}
}
private fun decrementTip() {
if (tipPercent != MIN_TIP) {
tipPercent -= TIP_INCREMENT_PERCENT
tipTextView.text = String.format("%d%%", tipPercent)
}
}
private fun incrementPeople() {
if (numberOfPeople != MAX_PEOPLE) {
numberOfPeople += PEOPLE_INCREMENT_VALUE
numberOfPeopleTextView.text = numberOfPeople.toString()
}
}
private fun decrementPeople() {
if (numberOfPeople != MIN_PEOPLE) {
numberOfPeople -= PEOPLE_INCREMENT_VALUE
numberOfPeopleTextView.text = numberOfPeople.toString()
}
}
இங்கே குறியீடு அதிகபட்ச மதிப்புகளுடன் (MAX_TIP & MAX_PEOPLE) அதிகரிப்பு செயல்பாடுகளைப் பாதுகாக்கிறது. கூடுதலாக, குறியீடு குறைப்பு செயல்பாடுகளை குறைந்தபட்ச மதிப்புகளுடன் (MIN_TIP & MIN_PEOPLE) பாதுகாக்கிறது.
இப்போது நாம் initViews செயல்பாட்டில் கேட்பவர்களுடன் பொத்தான்களை இணைக்கிறோம் (#13):
private fun initViews() {
...
addTipButton.setOnClickListener(this)
subtractTipButton.setOnClickListener(this)
addPeopleButton.setOnClickListener(this)
subtractPeopleButton.setOnClickListener(this)
//TODO #15: Bind EditText to TextWatcher
}
நீங்கள் இப்போது மொத்த சேதங்கள், உதவிக்குறிப்புகள் மற்றும் கூட்டத்தில் பங்கேற்பாளர்களின் எண்ணிக்கையைச் சேர்க்கலாம். சரி, இப்போது மிக முக்கியமான விஷயம் ...
செலவு கணக்கீடு பிரிவு
இந்தக் குறியீடு செலவுகளைக் கணக்கிடுகிறது (#14):
private fun calculateExpense() {
val totalBill = billEditText.text.toString().toDouble()
val totalExpense = ((HUNDRED_PERCENT + tipPercent) / HUNDRED_PERCENT) * totalBill
val individualExpense = totalExpense / numberOfPeople
expensePerPersonTextView.text = String.format("$%.2f", individualExpense)
}
சரி, இங்கே ஒரு செயல்பாடு அழைக்கப்படுகிறது, இது நிறுவனத்தில் உள்ளவர்களின் எண்ணிக்கையை கணக்கில் எடுத்துக்கொண்டு உதவிக்குறிப்புகளைக் கணக்கிடுவதை சாத்தியமாக்குகிறது (#15):
private fun incrementTip() {
…
}
private fun decrementTip() {
…
}
private fun incrementPeople() {
…
}
private fun decrementPeople() {
…
}
பயன்பாட்டை துவக்குவோம். இது நன்றாக வேலை செய்கிறது. ஆனால் அது சிறப்பாக இருக்கலாம்.
நீங்கள் பில் தொகையை அகற்றிவிட்டு, உதவிக்குறிப்புகள் அல்லது நண்பர்களின் எண்ணிக்கையை அதிகரிக்க முயற்சித்தால், பூஜ்ஜிய விலை மதிப்புக்கான காசோலை இன்னும் இல்லாததால், பயன்பாடு செயலிழக்கும். மேலும், நீங்கள் பில் தொகையை மாற்ற முயற்சித்தால், கட்டணங்கள் புதுப்பிக்கப்படாது.
இறுதி படிகள்
உரைக் கண்காணிப்பாளரைச் சேர் (#16):
வகுப்பு முதன்மை செயல்பாடு: AppCompatActivity(), View.OnClickListener, TextWatcher {
பின்னர் நாம் billEditText கேட்பவரை உட்பொதிக்கிறோம் (#17):
billEditText.addTextChangedListener(இது)
மேலும் TextWatcher (#18) ஐ இயக்க குறியீட்டைச் சேர்க்கிறோம்:
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
if (!billEditText.text.isEmpty()) {
calculateExpense()
}
}
override fun afterTextChanged(s: Editable?) {}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
சரி, இப்போது எல்லாம் வேலை செய்கிறது! வாழ்த்துகள், நீங்கள் உங்கள் சொந்த "டிப் கால்குலேட்டரை" கோட்லினில் எழுதியுள்ளீர்கள்.