ಕೋಟ್ಲಿನ್ನಲ್ಲಿ ಟಿಪ್ ಕ್ಯಾಲ್ಕುಲೇಟರ್ ಅನ್ನು ರಚಿಸುವುದು: ಅದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ?
ಕೋಟ್ಲಿನ್ನಲ್ಲಿ ಸುಳಿವುಗಳನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಸರಳವಾದ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು ಎಂದು ನಾವು ನಿಮಗೆ ಹೇಳುತ್ತೇವೆ. ಹೆಚ್ಚು ನಿಖರವಾಗಿ, ಕೋಟ್ಲಿನ್ 1.3.21, ಆಂಡ್ರಾಯ್ಡ್ 4, ಆಂಡ್ರಾಯ್ಡ್ ಸ್ಟುಡಿಯೋ 3. ಲೇಖನವು ಆಸಕ್ತಿದಾಯಕವಾಗಿರುತ್ತದೆ, ಮೊದಲನೆಯದಾಗಿ, ಆಂಡ್ರಾಯ್ಡ್ ಅಪ್ಲಿಕೇಶನ್ ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ ತಮ್ಮ ಪ್ರಯಾಣವನ್ನು ಪ್ರಾರಂಭಿಸುವವರಿಗೆ. ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಅದು ಏನು ಮತ್ತು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಇದು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ.
ರೆಸ್ಟಾರೆಂಟ್ ಅಥವಾ ಕೆಫೆಯಲ್ಲಿ ಸಮಯ ಕಳೆಯಲು ನಿರ್ಧರಿಸುವ ಕಂಪನಿಯಿಂದ ಸಲಹೆಗಳ ಮೊತ್ತವನ್ನು ನೀವು ಲೆಕ್ಕಾಚಾರ ಮಾಡಬೇಕಾದಾಗ ಈ ಕ್ಯಾಲ್ಕುಲೇಟರ್ ಸೂಕ್ತವಾಗಿ ಬರುತ್ತದೆ. ಸಹಜವಾಗಿ, ಎಲ್ಲರೂ ಯಾವಾಗಲೂ ಮಾಣಿಗಳಿಗೆ ಸುಳಿವು ನೀಡುವುದಿಲ್ಲ; ಇದು ಪಾಶ್ಚಿಮಾತ್ಯ ಸಂಪ್ರದಾಯವಾಗಿದೆ, ಆದರೆ ಅಂತಹ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಪ್ರಕ್ರಿಯೆಯು ಯಾವುದೇ ಸಂದರ್ಭದಲ್ಲಿ ಆಸಕ್ತಿದಾಯಕವಾಗಿದೆ.
ನಾವು ನೆನಪಿಸುತ್ತೇವೆ:ಎಲ್ಲಾ Habr ಓದುಗರಿಗೆ - Habr ಪ್ರೊಮೊ ಕೋಡ್ ಬಳಸಿಕೊಂಡು ಯಾವುದೇ ಸ್ಕಿಲ್ಬಾಕ್ಸ್ ಕೋರ್ಸ್ಗೆ ದಾಖಲಾಗುವಾಗ 10 ರೂಬಲ್ ರಿಯಾಯಿತಿ.
ನೀವು ಒಟ್ಟು ಮೊತ್ತದ ಅಪೇಕ್ಷಿತ ಶೇಕಡಾವಾರು, ಸಭೆಯಲ್ಲಿ ಭಾಗವಹಿಸುವವರ ಸಂಖ್ಯೆಯನ್ನು ನಮೂದಿಸಿ ಮತ್ತು ಫಲಿತಾಂಶವನ್ನು ಪಡೆಯಿರಿ - ನೀವು ಬಿಡಬೇಕಾದ ಸಲಹೆಯ ಮೊತ್ತ.
ಪ್ರಾರಂಭಿಸುವುದು
ಸಂಪೂರ್ಣ ಅಪ್ಲಿಕೇಶನ್ ಇಂಟರ್ಫೇಸ್ ಈ ರೀತಿ ಕಾಣುತ್ತದೆ:
ಮೊದಲ ಕ್ರಿಯೆ - ಪ್ರಾಜೆಕ್ಟ್ ಬೇಸ್ ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ. ಇದನ್ನು Android Studio 3.0 ಅಥವಾ ನಂತರದ ಆವೃತ್ತಿಯಲ್ಲಿ ತೆರೆಯಿರಿ. ನಾವು ಯೋಜನೆಯನ್ನು ನಿರ್ಮಿಸುತ್ತೇವೆ ಮತ್ತು ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ ಮತ್ತು ಬಿಳಿ ಪರದೆಯನ್ನು ನೋಡುತ್ತೇವೆ. ಎಲ್ಲವೂ ಚೆನ್ನಾಗಿದೆ, ಅದು ಹೇಗಿರಬೇಕು.
ಎಲ್ಲವನ್ನೂ ಸ್ಪಷ್ಟಪಡಿಸಲು ಬಳಕೆದಾರರ ಕ್ರಿಯೆಗಳನ್ನು ಕಾಲಾನುಕ್ರಮದಲ್ಲಿ ಯೋಜನೆಯಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ. ಇದನ್ನು ವೀಕ್ಷಿಸಲು, ವೀಕ್ಷಿಸಿ -> ಟೂಲ್ ವಿಂಡೋಸ್ -> TODO ತೆರೆಯಿರಿ.
ನಾವು ಯೋಜನೆಯನ್ನು ಅಧ್ಯಯನ ಮಾಡುತ್ತೇವೆ ಮತ್ತು ಬಣ್ಣದ ಪ್ಯಾಲೆಟ್ ಅನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಲು color.xml ಅನ್ನು ತೆರೆಯುತ್ತೇವೆ. strings.xml ಪಠ್ಯ ಡೇಟಾವನ್ನು (ಸಹಿ) ಹೊಂದಿದೆ ಮತ್ತು styles.xml ಹಲವಾರು ಫಾಂಟ್ ಟೆಂಪ್ಲೇಟ್ಗಳನ್ನು ಒಳಗೊಂಡಿದೆ.
ವೆಚ್ಚ ವಿಭಾಗದ ಅಭಿವೃದ್ಧಿ
activity_main.xml ತೆರೆಯಿರಿ ಮತ್ತು ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು LinearLayout ಗೆ ಸೇರಿಸಿ (#1):
ರೆಸ್ಟೋರೆಂಟ್ ಸಂಗ್ರಹಣೆಯಲ್ಲಿ ಭಾಗವಹಿಸುವ ಪ್ರತಿಯೊಬ್ಬರಿಗೂ ವೈಯಕ್ತಿಕ ವೆಚ್ಚವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವುದು ಅಪ್ಲಿಕೇಶನ್ನ ಮುಖ್ಯ ಕಾರ್ಯವಾಗಿರುವುದರಿಂದ, costPerPersonTextView ಮುಖ್ಯ ಪಾತ್ರವನ್ನು ವಹಿಸುತ್ತದೆ.
ಎಡಿಟ್ಟೆಕ್ಸ್ಟ್ ಇನ್ಪುಟ್ ಅನ್ನು ಒಂದು ಸಾಲಿಗೆ ಮಿತಿಗೊಳಿಸುತ್ತದೆ, ಈ ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಸಂಖ್ಯೆ ದಶಮಾಂಶ ಇನ್ಪುಟ್ಟೈಪ್ಗೆ ಹೊಂದಿಸಬೇಕು.
ನಾವು ಪರೀಕ್ಷೆಗಾಗಿ ಯೋಜನೆಯನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ ಮತ್ತು ಸಾಮಾನ್ಯ ಹಾನಿಗಾಗಿ ನಿಯತಾಂಕಗಳನ್ನು ನಮೂದಿಸಿ (ಮುರಿದ ಕಪ್ಗಳು, ಫಲಕಗಳು, ಇತ್ಯಾದಿ)
"ಜನರು ಮತ್ತು ಸಲಹೆಗಳು" ವಿಭಾಗದ ಅಭಿವೃದ್ಧಿ
ಟಿಪ್ ವಾಲ್ಯೂಮ್ ಆಯ್ಕೆಯನ್ನು ಸೇರಿಸಲು, ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು ಹೊಸ ಲೀನಿಯರ್ ಲೇಔಟ್ ವಿಭಾಗಕ್ಕೆ ಅಂಟಿಸಿ (#4):
ಟಿಪ್ ಮೊತ್ತವನ್ನು ನಿಖರವಾಗಿ ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಕೋಡ್ನ ಈ ವಿಭಾಗವು ಅವಶ್ಯಕವಾಗಿದೆ. ಡೀಫಾಲ್ಟ್ ಪಠ್ಯ ಮೌಲ್ಯವು 20. ಇಮೇಜ್ ಬಟನ್ಗಳನ್ನು ಬರೆಯುವ ಅನುಮತಿಗಳೊಂದಿಗೆ ಫೋಲ್ಡರ್ನಲ್ಲಿ ಐಕಾನ್ಗಳೊಂದಿಗೆ ಒದಗಿಸಲಾಗಿದೆ.
ವಿಭಾಗವನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ನಕಲಿಸಿ ಮತ್ತು ಕೆಳಗಿನವುಗಳನ್ನು ಸೇರಿಸಿ (#5):
numberOfPeopleTextView ಗಾಗಿ ಡೀಫಾಲ್ಟ್ಟೆಕ್ಸ್ಟ್ (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 {
ನಂತರ ನಾವು ಬಿಲ್ಎಡಿಟ್ಟೆಕ್ಸ್ಟ್ ಆಲಿಸುವವರನ್ನು ಎಂಬೆಡ್ ಮಾಡುತ್ತೇವೆ (#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) {}
ಸರಿ, ಈಗ ಸಂಪೂರ್ಣವಾಗಿ ಎಲ್ಲವೂ ಕೆಲಸ ಮಾಡುತ್ತದೆ! ಅಭಿನಂದನೆಗಳು, ನೀವು ನಿಮ್ಮದೇ ಆದ "ಟಿಪ್ ಕ್ಯಾಲ್ಕುಲೇಟರ್" ಅನ್ನು ಕೋಟ್ಲಿನ್ನಲ್ಲಿ ಬರೆದಿದ್ದೀರಿ.