title
Android Development Tutorial 5

description
Get the Code Here: http://goo.gl/rxXP8 Best Android Book : http://goo.gl/uPhXFI Welcome to part 5 of my Android Development Tutorial! In this tutorial, I completely finish the tip app that I have been making. If you want to learn about the Android event listener you are in the right place. I will cover how to both get values from and change values in Android components.I also cover how to use changeListener, OnCheckedChangeListener, setOnCheckedChangeListener, OnItemSelectedListener, setOnItemSelectedListener, onItemSelected, setOnClickListener, and also how to turn a chronometer into a stop watch.

detail
{'title': 'Android Development Tutorial 5', 'heatmap': [{'end': 238.78, 'start': 211.142, 'weight': 0.779}, {'end': 401.144, 'start': 356.177, 'weight': 0.88}, {'end': 513.89, 'start': 486.991, 'weight': 0.909}, {'end': 612.985, 'start': 598.896, 'weight': 0.943}, {'end': 1101.236, 'start': 1087.018, 'weight': 0.743}, {'end': 1175.884, 'start': 1159.216, 'weight': 0.771}], 'summary': "Tutorial series 'android development tutorial 5' covers event handling in android and java code, including radio buttons, checkboxes, drop-downs, and waitress tip calculation, with a focus on real-time updates and automation in building a tip calculator app.", 'chapters': [{'end': 286.006, 'segs': [{'end': 58.306, 'src': 'embed', 'start': 0.129, 'weight': 0, 'content': [{'end': 4.232, 'text': 'Well hello internet and welcome to part 5 of my Android development tutorial.', 'start': 0.129, 'duration': 4.103}, {'end': 8.495, 'text': "If you haven't seen the previous parts of this tutorial, most definitely check those out.", 'start': 4.392, 'duration': 4.103}, {'end': 14.659, 'text': "There's a link in the upper right hand corner because I use a whole bunch of things that I talked about in parts 3 and 4 in this tutorial.", 'start': 8.515, 'duration': 6.144}, {'end': 22.384, 'text': "And today what we're going to do is we are going to handle events that are going to be triggered by radio buttons, radio groups, check boxes,", 'start': 14.999, 'duration': 7.385}, {'end': 27.527, 'text': 'drop downs and so forth and so on that we created in part 4 of the Android development tutorial.', 'start': 22.384, 'duration': 5.143}, {'end': 29.749, 'text': "So I have a bunch to do, so let's get into it.", 'start': 27.687, 'duration': 2.062}, {'end': 36.053, 'text': 'okay. so in the last part of the tutorial, we created the layout for our whole entire app here,', 'start': 30.669, 'duration': 5.384}, {'end': 40.596, 'text': 'and all the code is available in a link under the video in the description.', 'start': 36.053, 'duration': 4.543}, {'end': 45.479, 'text': 'now what we need to do is set this up so that whenever any of these things are changed,', 'start': 40.596, 'duration': 4.883}, {'end': 50.682, 'text': 'we are going to change our tip up here and then hence change the final bill amount.', 'start': 45.479, 'duration': 5.203}, {'end': 58.306, 'text': "so there is a whole bunch of different events that we need to handle And we're going to be handling them in crazytipcalc.java.", 'start': 50.682, 'duration': 7.624}], 'summary': 'Part 5 of android tutorial on handling events for radio buttons, checkboxes, and drop-downs.', 'duration': 58.177, 'max_score': 0.129, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws129.jpg'}, {'end': 199.355, 'src': 'embed', 'start': 168.968, 'weight': 2, 'content': [{'end': 172.311, 'text': 'And this looks like just about as good of a place as any to start.', 'start': 168.968, 'duration': 3.343}, {'end': 176.916, 'text': "So I'm going to go private, void, set up intro checkboxes.", 'start': 172.632, 'duration': 4.284}, {'end': 184.743, 'text': "And I'm just going to add change listeners to these guys so that I will be able to make changes to the tip amount anytime.", 'start': 177.296, 'duration': 7.447}, {'end': 186.465, 'text': 'there are changes in the checkboxes.', 'start': 184.743, 'duration': 1.722}, {'end': 192.391, 'text': "So we're going to have to come in here and first thing I'm going to do is set up a change listener for the friendly checkbox.", 'start': 186.705, 'duration': 5.686}, {'end': 199.355, 'text': "and to do that, you just go set on checked change listener and then i'm going to go new.", 'start': 192.891, 'duration': 6.464}], 'summary': 'Setting up change listeners for intro checkboxes to enable tip amount changes.', 'duration': 30.387, 'max_score': 168.968, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws168968.jpg'}, {'end': 238.78, 'src': 'heatmap', 'start': 211.142, 'weight': 0.779, 'content': [{'end': 215.344, 'text': "and then you just go change listener and of course you don't have to memorize all this stuff.", 'start': 211.142, 'duration': 4.202}, {'end': 217.459, 'text': 'Just get the code and copy and paste it.', 'start': 215.677, 'duration': 1.782}, {'end': 219.561, 'text': 'And at the end of this, put a little curly brace.', 'start': 217.659, 'duration': 1.902}, {'end': 220.502, 'text': 'Go like that.', 'start': 219.841, 'duration': 0.661}, {'end': 221.903, 'text': 'And then put a semicolon.', 'start': 220.682, 'duration': 1.221}, {'end': 223.124, 'text': "We're going to do all this inline.", 'start': 221.923, 'duration': 1.201}, {'end': 226.768, 'text': 'And of course, make sure this is an uppercase O.', 'start': 223.665, 'duration': 3.103}, {'end': 229.731, 'text': "And then it's going to say add unimplemented methods.", 'start': 226.768, 'duration': 2.963}, {'end': 231.437, 'text': "And we're just going to copy that.", 'start': 230.356, 'duration': 1.081}, {'end': 232.937, 'text': "And it's going to throw this in here.", 'start': 231.797, 'duration': 1.14}, {'end': 238.78, 'text': 'So now basically we have to decide what exactly we want to do when our checkbox is indeed checked.', 'start': 233.097, 'duration': 5.683}], 'summary': 'Demonstrating code changes and method implementation for checkbox functionality.', 'duration': 27.638, 'max_score': 211.142, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws211142.jpg'}], 'start': 0.129, 'title': 'Handling events in android and java code', 'summary': "Covers handling events triggered by radio buttons, radio groups, check boxes, and drop downs in android development tutorial, as well as handling different events in java code including updating tip and final bill based on changes in the editable text area 'tip amount'. it also explains setting up change listeners for checkboxes and using checklist values to calculate a new tip.", 'chapters': [{'end': 36.053, 'start': 0.129, 'title': 'Android dev part 5: event handling', 'summary': 'Covers handling events triggered by radio buttons, radio groups, check boxes, drop downs created in part 4 of the android development tutorial.', 'duration': 35.924, 'highlights': ['The tutorial focuses on handling events triggered by radio buttons, radio groups, check boxes, and drop downs created in part 4 of the Android development tutorial.', 'The tutorial is part 5 of the Android development tutorial series.', 'The speaker encourages viewers to check out the previous parts of the tutorial.', 'The speaker emphasizes the utilization of concepts discussed in parts 3 and 4 in the current tutorial.']}, {'end': 135.51, 'start': 36.053, 'title': 'Handling events in java code', 'summary': "Covers handling different events in java code, including updating tip and final bill based on changes in the editable text area, 'tip amount'. it also explains the process of converting values to double and formatting the final bill.", 'duration': 99.457, 'highlights': ["The chapter explains the process of updating tip and final bill based on changes in the editable text area, 'tip amount', and handling different events in Java code.", 'It details the process of getting the tip amount by converting the value from the editable text area into a double and calculating the final bill by multiplying the total bill with the tip amount.', 'The chapter demonstrates the process of setting the text in the final bill editable text area, including converting it into a string and formatting it with two decimal places.']}, {'end': 286.006, 'start': 135.51, 'title': 'Android seekbar change listener', 'summary': 'Discusses setting up change listeners for checkboxes and using checklist values to calculate a new tip, presenting a basic approach for the audience to use, with a focus on setting up the change listener for the friendly checkbox and manipulating checklist values based on checkbox status.', 'duration': 150.496, 'highlights': ['Setting up change listeners for checkboxes and using checklist values to calculate a new tip', 'Focus on setting up the change listener for the friendly checkbox', 'Manipulating checklist values based on checkbox status']}], 'duration': 285.877, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws129.jpg', 'highlights': ['The tutorial focuses on handling events triggered by radio buttons, radio groups, check boxes, and drop downs created in part 4 of the Android development tutorial.', "The chapter explains the process of updating tip and final bill based on changes in the editable text area, 'tip amount', and handling different events in Java code.", 'Setting up change listeners for checkboxes and using checklist values to calculate a new tip', 'The speaker encourages viewers to check out the previous parts of the tutorial.']}, {'end': 443.598, 'segs': [{'end': 311.606, 'src': 'embed', 'start': 286.286, 'weight': 0, 'content': [{'end': 292.051, 'text': "And then what I'm going to do after that is now I have to calculate the tip using the waitress's new checklist options.", 'start': 286.286, 'duration': 5.765}, {'end': 296.834, 'text': "And to do that I'm going to go set tip from waitress checklist.", 'start': 292.411, 'duration': 4.423}, {'end': 298.716, 'text': "And I'm going to create that in a second here.", 'start': 297.215, 'duration': 1.501}, {'end': 301.538, 'text': "Actually I'm going to copy it because I'm going to create it next.", 'start': 299.236, 'duration': 2.302}, {'end': 306.802, 'text': "And then after that is set up I'm going to go update tip and final bill.", 'start': 301.818, 'duration': 4.984}, {'end': 309.784, 'text': 'Which is the very first thing I showed you at the beginning of this tutorial.', 'start': 307.042, 'duration': 2.742}, {'end': 311.606, 'text': "So now after that what I'm going to do.", 'start': 310.005, 'duration': 1.601}], 'summary': 'Calculating tip using waitress checklist and updating final bill.', 'duration': 25.32, 'max_score': 286.286, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws286286.jpg'}, {'end': 401.144, 'src': 'heatmap', 'start': 356.177, 'weight': 0.88, 'content': [{'end': 365.316, 'text': "i want this to be have two digits and fill up the rest of the space with zeros, and then I'm going to take checklist total and on top of that,", 'start': 356.177, 'duration': 9.139}, {'end': 368.118, 'text': "at the end of this, I'm going to multiply that times.", 'start': 365.316, 'duration': 2.802}, {'end': 371.381, 'text': '01, which is going to give me a tip amount or a percentage.', 'start': 368.118, 'duration': 3.263}, {'end': 376.785, 'text': 'okay, so now that I have that set up, I can come back up here and handle the rest of my checkboxes.', 'start': 371.381, 'duration': 5.404}, {'end': 380.767, 'text': 'so basically, if we scroll back up here again, we come to our checkbox area.', 'start': 376.785, 'duration': 3.982}, {'end': 381.408, 'text': 'here we are.', 'start': 380.767, 'duration': 0.641}, {'end': 385.491, 'text': 'I have the friendly checkbox, the specials checkbox and the opinion checkbox.', 'start': 381.408, 'duration': 4.083}, {'end': 386.932, 'text': 'this is pretty easy.', 'start': 385.911, 'duration': 1.021}, {'end': 393.878, 'text': "once I have one of these set up, the way I'm gonna handle this is I'm just gonna come in here inside of this and do this in line again.", 'start': 386.932, 'duration': 6.946}, {'end': 399.223, 'text': "I'm just gonna copy this, paste that in there and then I'm gonna call this specials checkbox.", 'start': 393.878, 'duration': 5.345}, {'end': 401.144, 'text': "don't have to change anything else.", 'start': 399.223, 'duration': 1.921}], 'summary': 'Setting up a system to handle checkboxes and compute a tip amount based on checklist total.', 'duration': 44.967, 'max_score': 356.177, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws356177.jpg'}, {'end': 429.006, 'src': 'embed', 'start': 403.306, 'weight': 1, 'content': [{'end': 408.851, 'text': "I'm gonna change this to specials checkbox and in this situation, if they tell me about the specials,", 'start': 403.306, 'duration': 5.545}, {'end': 412.254, 'text': "I'm gonna give them one percentage more in their tip and if they don't,", 'start': 408.851, 'duration': 3.403}, {'end': 416.477, 'text': "I'm going to give them nothing And everything else can be set up exactly the same way.", 'start': 412.254, 'duration': 4.223}, {'end': 423.142, 'text': 'And now to handle the opinions, being if the waiter or waitress gives me their opinions on what I pick.', 'start': 416.797, 'duration': 6.345}, {'end': 426.164, 'text': "And here I'm just going to change this to opinion checkbox.", 'start': 423.402, 'duration': 2.762}, {'end': 429.006, 'text': 'And change this to opinion checkbox.', 'start': 426.645, 'duration': 2.361}], 'summary': "Specials checkbox prompts extra tip; opinion checkbox for waiter's input.", 'duration': 25.7, 'max_score': 403.306, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws403306.jpg'}], 'start': 286.286, 'title': 'Android checkbox event handling', 'summary': "Explains how to handle events on checkboxes in android, including setting up tip calculation using waitress's new checklist options and adjusting tip based on checkbox selections.", 'chapters': [{'end': 443.598, 'start': 286.286, 'title': 'Android checkbox event handling', 'summary': "Explains how to handle events on checkboxes in android, including setting up tip calculation using waitress's new checklist options and adjusting tip based on checkbox selections.", 'duration': 157.312, 'highlights': ["Setting up tip calculation using waitress's new checklist options involves creating a checklist total and then setting the tip amount based on the total and a percentage, providing a straightforward way to handle tip calculation on Android.", 'Adjusting tip based on checkbox selections, such as specials and opinions, involves adding a percentage to the tip amount, demonstrating a simple and effective method for customizing tip calculation based on customer interactions with checkboxes.']}], 'duration': 157.312, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws286286.jpg', 'highlights': ["Setting up tip calculation using waitress's new checklist options involves creating a checklist total and then setting the tip amount based on the total and a percentage, providing a straightforward way to handle tip calculation on Android.", 'Adjusting tip based on checkbox selections, such as specials and opinions, involves adding a percentage to the tip amount, demonstrating a simple and effective method for customizing tip calculation based on customer interactions with checkboxes.']}, {'end': 652.311, 'segs': [{'end': 486.991, 'src': 'embed', 'start': 458.871, 'weight': 0, 'content': [{'end': 464.295, 'text': "And I'm going to handle those events that are going to be called by those guys, those radio buttons, whenever they're clicked on.", 'start': 458.871, 'duration': 5.424}, {'end': 466.917, 'text': 'Void Add change listeners for radios.', 'start': 464.475, 'duration': 2.442}, {'end': 475.484, 'text': "And then what I'm going to do is I'm going to set all the listeners on the radio group and then handle them all here in one situation or one little space here.", 'start': 467.277, 'duration': 8.207}, {'end': 476.945, 'text': "So I'm going to go available.", 'start': 475.644, 'duration': 1.301}, {'end': 482.288, 'text': 'radio group, because the radio group surrounds all of the radio buttons.', 'start': 477.345, 'duration': 4.943}, {'end': 486.991, 'text': "we're just going to type in set on check, change listener and then we're going to go new on.", 'start': 482.288, 'duration': 4.703}], 'summary': 'Adding change listeners for radio buttons to handle events efficiently.', 'duration': 28.12, 'max_score': 458.871, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws458871.jpg'}, {'end': 538.795, 'src': 'heatmap', 'start': 486.991, 'weight': 1, 'content': [{'end': 489.052, 'text': "make sure that's capital L checked.", 'start': 486.991, 'duration': 2.061}, {'end': 490.713, 'text': 'change listener.', 'start': 489.052, 'duration': 1.661}, {'end': 492.194, 'text': 'close that off there.', 'start': 490.713, 'duration': 1.481}, {'end': 496.781, 'text': 'put a curly brace inside of there, closing curly brace right there And a semicolon.', 'start': 492.194, 'duration': 4.587}, {'end': 499.863, 'text': "And then this guy's going to say I need to add unimplemented methods.", 'start': 497.022, 'duration': 2.841}, {'end': 500.763, 'text': 'Do that for me.', 'start': 499.963, 'duration': 0.8}, {'end': 505.406, 'text': 'And there is the only unimplemented method, which is unchecked change.', 'start': 501.164, 'duration': 4.242}, {'end': 511.629, 'text': "And here I'm going to use the Java ternary operator again, just like I did before, just to keep this nice and simple.", 'start': 505.666, 'duration': 5.963}, {'end': 513.89, 'text': "So I'm just going to come up here and copy this guy.", 'start': 511.709, 'duration': 2.181}, {'end': 517.822, 'text': 'Come back down inside of here, paste it in, change that to three.', 'start': 514.36, 'duration': 3.462}, {'end': 521.244, 'text': "Actually, I'm going to do three of them because I have three radio buttons.", 'start': 518.202, 'duration': 3.042}, {'end': 523.525, 'text': "So that's going to be four and that's going to be five.", 'start': 521.544, 'duration': 1.981}, {'end': 527.648, 'text': 'And then these are going to change to available bad radio.', 'start': 523.785, 'duration': 3.863}, {'end': 531.591, 'text': "And if they were a bad waitress, I'm going to subtract one from their tip.", 'start': 527.968, 'duration': 3.623}, {'end': 535.093, 'text': "I'm going to copy this, paste that in there, paste that in there.", 'start': 531.611, 'duration': 3.482}, {'end': 538.795, 'text': 'And then if they were an OK waitress, put that there.', 'start': 535.433, 'duration': 3.362}], 'summary': 'Updating code with unimplemented methods, using java ternary operator, and modifying radio button values.', 'duration': 38.832, 'max_score': 486.991, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws486991.jpg'}, {'end': 600.517, 'src': 'embed', 'start': 574.164, 'weight': 3, 'content': [{'end': 578.347, 'text': 'And here, of course, is where I initialize the spinner, which we talked about in the last part of the tutorial.', 'start': 574.164, 'duration': 4.183}, {'end': 580.228, 'text': 'So scroll all the way down here again.', 'start': 578.567, 'duration': 1.661}, {'end': 582.769, 'text': "And once again I'm going to go private void.", 'start': 580.248, 'duration': 2.521}, {'end': 585.35, 'text': 'Add item selected listener to my spinner.', 'start': 583.189, 'duration': 2.161}, {'end': 587.131, 'text': 'Going to do this inline again.', 'start': 585.75, 'duration': 1.381}, {'end': 589.152, 'text': 'Problems spinner.', 'start': 587.491, 'duration': 1.661}, {'end': 593.894, 'text': "Here I'm going to go set on item selected listener.", 'start': 589.412, 'duration': 4.482}, {'end': 598.616, 'text': 'And then inside of here go new on item selected listener.', 'start': 594.154, 'duration': 4.462}, {'end': 600.517, 'text': 'See looks the same again.', 'start': 598.896, 'duration': 1.621}], 'summary': 'Initializing a spinner and adding item selected listener.', 'duration': 26.353, 'max_score': 574.164, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws574164.jpg'}, {'end': 628.776, 'src': 'heatmap', 'start': 598.896, 'weight': 0.943, 'content': [{'end': 600.517, 'text': 'See looks the same again.', 'start': 598.896, 'duration': 1.621}, {'end': 602.178, 'text': 'put a curly brace in there.', 'start': 600.857, 'duration': 1.321}, {'end': 603.779, 'text': 'come down here, put a semicolon.', 'start': 602.178, 'duration': 1.601}, {'end': 606.621, 'text': "of course it's going to say I need to add unimplemented methods.", 'start': 603.779, 'duration': 2.842}, {'end': 607.522, 'text': 'just click on that.', 'start': 606.621, 'duration': 0.901}, {'end': 612.985, 'text': "see, you don't have to memorize anything and I set the code up so you could use it sort of like a cheat sheet anyway.", 'start': 607.522, 'duration': 5.463}, {'end': 617.328, 'text': 'so you would be able to use these things and you can see here on nothing selected.', 'start': 612.985, 'duration': 4.343}, {'end': 625.234, 'text': "I'm actually going to ignore that altogether and instead I'm going to focus on on item selected and change this guy right here and then guess what I'm going to do.", 'start': 617.328, 'duration': 7.906}, {'end': 627.095, 'text': "I'm going to use the ternary operator again.", 'start': 625.234, 'duration': 1.861}, {'end': 628.776, 'text': "So I'm just going to copy all these.", 'start': 627.455, 'duration': 1.321}], 'summary': 'Demonstration of using code and shortcuts to avoid memorization and enhance productivity.', 'duration': 29.88, 'max_score': 598.896, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws598896.jpg'}, {'end': 652.311, 'src': 'embed', 'start': 612.985, 'weight': 4, 'content': [{'end': 617.328, 'text': 'so you would be able to use these things and you can see here on nothing selected.', 'start': 612.985, 'duration': 4.343}, {'end': 625.234, 'text': "I'm actually going to ignore that altogether and instead I'm going to focus on on item selected and change this guy right here and then guess what I'm going to do.", 'start': 617.328, 'duration': 7.906}, {'end': 627.095, 'text': "I'm going to use the ternary operator again.", 'start': 625.234, 'duration': 1.861}, {'end': 628.776, 'text': "So I'm just going to copy all these.", 'start': 627.455, 'duration': 1.321}, {'end': 629.897, 'text': 'come down in here.', 'start': 628.776, 'duration': 1.121}, {'end': 630.657, 'text': 'paste that in there.', 'start': 629.897, 'duration': 0.76}, {'end': 638.262, 'text': "And if they pick the first, second, or third option inside of my spinner or my drop-down box, I'm going to handle those.", 'start': 630.897, 'duration': 7.365}, {'end': 644.486, 'text': "And to check which option was actually selected from those guys, we're not going to use is checked.", 'start': 638.762, 'duration': 5.724}, {'end': 648.008, 'text': "We're instead going to use get selected item.", 'start': 644.546, 'duration': 3.462}, {'end': 652.311, 'text': "And that's going to return to me whichever item they actually selected.", 'start': 648.288, 'duration': 4.023}], 'summary': 'Using ternary operator to handle selected options in drop-down box.', 'duration': 39.326, 'max_score': 612.985, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws612985.jpg'}], 'start': 443.738, 'title': 'Handling radio button and dropdown events', 'summary': 'Involves implementing change listeners for radio buttons, setting listeners on the radio group, handling events when radio buttons are clicked, initializing a spinner, implementing item selected listeners, and using the ternary operator to update tip and final bill based on different selections.', 'chapters': [{'end': 556.912, 'start': 443.738, 'title': 'Implementing radio button listeners', 'summary': 'Involves implementing change listeners for radio buttons and setting listeners on the radio group, handling events when radio buttons are clicked, using java ternary operator to update tip and final bill based on different radio button selections.', 'duration': 113.174, 'highlights': ['Implementing change listeners for radio buttons and setting listeners on the radio group.', 'Using Java ternary operator to update tip and final bill based on different radio button selections.', 'Utilizing Java ternary operator to maintain simplicity in the code.']}, {'end': 652.311, 'start': 557.092, 'title': 'Handling events for radio buttons and dropdown box', 'summary': 'Covers handling events for radio buttons and a dropdown box in an android app, including initializing a spinner, implementing item selected listeners, and using the ternary operator to handle different options selected from the dropdown box.', 'duration': 95.219, 'highlights': ['Initializing a spinner and implementing item selected listeners are explained in detail.', 'Using the ternary operator to handle different options selected from the dropdown box is demonstrated.', 'The chapter emphasizes the use of get selected item method to check the selected option from the dropdown box.']}], 'duration': 208.573, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws443738.jpg', 'highlights': ['Implementing change listeners for radio buttons and setting listeners on the radio group.', 'Using Java ternary operator to update tip and final bill based on different radio button selections.', 'Utilizing Java ternary operator to maintain simplicity in the code.', 'Initializing a spinner and implementing item selected listeners are explained in detail.', 'Using the ternary operator to handle different options selected from the dropdown box is demonstrated.', 'The chapter emphasizes the use of get selected item method to check the selected option from the dropdown box.']}, {'end': 1063.009, 'segs': [{'end': 691.356, 'src': 'embed', 'start': 652.611, 'weight': 0, 'content': [{'end': 657.435, 'text': "And then after that, I'm going to go equals and see if it equals bad.", 'start': 652.611, 'duration': 4.824}, {'end': 664.281, 'text': "And if the waitress was indeed bad, we're going to again, give her a negative one on her tip and otherwise it's going to be zero.", 'start': 657.916, 'duration': 6.365}, {'end': 671.768, 'text': "And here to make this a little bit more simple, I'm just going to copy that all together, paste that in there, paste that in there, just like that.", 'start': 664.542, 'duration': 7.226}, {'end': 676.052, 'text': 'And then now I can just come in here and say, all right, did they provide? Okay.', 'start': 672.068, 'duration': 3.984}, {'end': 677.092, 'text': "I can't remember what it is.", 'start': 676.232, 'duration': 0.86}, {'end': 678.774, 'text': 'I think it was service or availability.', 'start': 677.153, 'duration': 1.621}, {'end': 681.648, 'text': "If yes, it's going to be three in their tip.", 'start': 679.306, 'duration': 2.342}, {'end': 683.069, 'text': "Otherwise, I'm going to set it to zero.", 'start': 681.708, 'duration': 1.361}, {'end': 687.953, 'text': "And if they provided good service, I'm going to increase their tip by six.", 'start': 683.55, 'duration': 4.403}, {'end': 690.215, 'text': 'And otherwise, this is going to be set to zero.', 'start': 688.494, 'duration': 1.721}, {'end': 691.356, 'text': 'And then what do I need to do??', 'start': 690.396, 'duration': 0.96}], 'summary': 'Creating a tipping system based on service quality, with quantifiable criteria for increasing or decreasing tips.', 'duration': 38.745, 'max_score': 652.611, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws652611.jpg'}, {'end': 742.842, 'src': 'embed', 'start': 711.811, 'weight': 2, 'content': [{'end': 714.132, 'text': "So we're going to come up here again, and there we are.", 'start': 711.811, 'duration': 2.321}, {'end': 721.034, 'text': "So we're going to set our button click listeners and then, whenever the buttons are clicked on and when I mean buttons, I mean start,", 'start': 714.372, 'duration': 6.662}, {'end': 724.375, 'text': 'pause and reset they are going to change the chronometer.', 'start': 721.034, 'duration': 3.341}, {'end': 725.636, 'text': "So I'm just going to copy that.", 'start': 724.576, 'duration': 1.06}, {'end': 729.897, 'text': "scroll way to the bottom and this time we're going to do something a little bit different.", 'start': 725.996, 'duration': 3.901}, {'end': 737.26, 'text': "so if i want to add my click listeners for my buttons, i'm just going to go private void again and here set button on,", 'start': 729.897, 'duration': 7.363}, {'end': 742.842, 'text': "click listeners is just the name i gave it and then i'm going to go start chronometer button.", 'start': 737.26, 'duration': 5.582}], 'summary': 'Setting button click listeners to change the chronometer.', 'duration': 31.031, 'max_score': 711.811, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws711811.jpg'}, {'end': 940.344, 'src': 'embed', 'start': 917.183, 'weight': 3, 'content': [{'end': 924.69, 'text': "what I'm going to need to do is calculate the amount of time that has elapsed since the start button was pressed, minus the time that we were paused.", 'start': 917.183, 'duration': 7.507}, {'end': 932.897, 'text': "And to do that, I'm just going to go time waiting chronometer and I'm going to set the base call system clock,", 'start': 925.11, 'duration': 7.787}, {'end': 940.344, 'text': 'get the elapsed real time and then subtract from that the number of milliseconds that I was paused after I hit start.', 'start': 932.897, 'duration': 7.447}], 'summary': 'Calculate elapsed time by subtracting paused time from start time.', 'duration': 23.161, 'max_score': 917.183, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws917183.jpg'}, {'end': 1056.248, 'src': 'embed', 'start': 1023.549, 'weight': 4, 'content': [{'end': 1024.75, 'text': "So that's extremely simple.", 'start': 1023.549, 'duration': 1.201}, {'end': 1029.173, 'text': "And then I'm going to create this guy, the update tip based off of time waited right now.", 'start': 1025.01, 'duration': 4.163}, {'end': 1031.255, 'text': "And remember, it's going to get seconds you waited.", 'start': 1029.433, 'duration': 1.822}, {'end': 1034.436, 'text': "So let's just copy the whole entire thing and then bounce down here.", 'start': 1031.555, 'duration': 2.881}, {'end': 1036.878, 'text': "And I'm going to go private, void.", 'start': 1034.457, 'duration': 2.421}, {'end': 1039.619, 'text': 'update tip time waited on seconds.', 'start': 1037.319, 'duration': 2.3}, {'end': 1041.961, 'text': 'you waited and this is a long remember.', 'start': 1039.619, 'duration': 2.342}, {'end': 1050.565, 'text': "and then what I'm gonna do is go checklist values and in the nine spot I believe that's what it is.", 'start': 1041.961, 'duration': 8.604}, {'end': 1056.248, 'text': "yes, checklist values, and there that is, and I'm gonna do another ternary operator on this guy.", 'start': 1050.565, 'duration': 5.683}], 'summary': 'Creating an update tip based on time waited in seconds using java.', 'duration': 32.699, 'max_score': 1023.549, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws1023549.jpg'}], 'start': 652.611, 'title': 'Waitress tip calculation and chronometer setup', 'summary': 'Explores a method for calculating waitress tips based on service quality, potentially affecting tips for bad or good service, and involves setting up a chronometer as a stopwatch for time tracking, including setting button click listeners, parsing time, calculating time elapsed, and updating tips based on time waited.', 'chapters': [{'end': 691.356, 'start': 652.611, 'title': 'Waitress tip calculation', 'summary': 'Explores a method for calculating waitress tips based on service quality, with a potential negative impact on tips for bad service and potential positive impact for good service.', 'duration': 38.745, 'highlights': ['The method involves assigning a negative one tip for bad service and zero for other cases.', 'The method also includes assigning a three tip for providing service or availability and a six tip for good service.', 'The chapter focuses on determining tip amounts based on service quality and simplifying the process.']}, {'end': 1063.009, 'start': 691.416, 'title': 'Setting up chronometer for time tracking', 'summary': 'Involves setting up a chronometer to work as a stopwatch, involving setting button click listeners, parsing time from the chronometer, calculating time elapsed, and updating tip based on time waited.', 'duration': 371.593, 'highlights': ['Setting button click listeners and handling start button click event', 'Parsing time from the chronometer and calculating elapsed time', 'Updating tip based on time waited']}], 'duration': 410.398, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws652611.jpg', 'highlights': ['The chapter focuses on determining tip amounts based on service quality and simplifying the process.', 'The method also includes assigning a three tip for providing service or availability and a six tip for good service.', 'Setting button click listeners and handling start button click event', 'Parsing time from the chronometer and calculating elapsed time', 'Updating tip based on time waited', 'The method involves assigning a negative one tip for bad service and zero for other cases.']}, {'end': 1248.501, 'segs': [{'end': 1101.236, 'src': 'heatmap', 'start': 1063.009, 'weight': 0, 'content': [{'end': 1070.212, 'text': "in here I'm just going to go seconds you waited and here I'm going to say if you waited more than 10 seconds, you're going to talk or tip again.", 'start': 1063.009, 'duration': 7.203}, {'end': 1071.853, 'text': "don't get mad at me, I'm doing this just so.", 'start': 1070.212, 'duration': 1.641}, {'end': 1072.553, 'text': "it's quick.", 'start': 1071.853, 'duration': 0.7}, {'end': 1080.256, 'text': "so if you wait less than or more than 10 seconds, she gets two taken off of her tip and if you don't, she gets two added to her tip.", 'start': 1072.553, 'duration': 7.703}, {'end': 1081.516, 'text': 'and then what do I need to do?', 'start': 1080.256, 'duration': 1.26}, {'end': 1087.018, 'text': "well, I'm going to save that and then I need to update the tip amount and then I need to update the final bill.", 'start': 1081.516, 'duration': 5.502}, {'end': 1090.16, 'text': "so I'm going to copy that again, come back down here again And save it.", 'start': 1087.018, 'duration': 3.142}, {'end': 1096.369, 'text': "And that leaves me with just figuring out what I'm going to do whenever the pause and the reset buttons are clicked.", 'start': 1090.4, 'duration': 5.969}, {'end': 1097.671, 'text': 'Pretty simple stuff.', 'start': 1096.749, 'duration': 0.922}, {'end': 1101.236, 'text': "So here, actually rather than, now I'm going to copy this.", 'start': 1098.051, 'duration': 3.185}], 'summary': 'Updating tip based on wait time, with 10-second threshold.', 'duration': 38.227, 'max_score': 1063.009, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws1063009.jpg'}, {'end': 1150.632, 'src': 'embed', 'start': 1120.375, 'weight': 3, 'content': [{'end': 1121.436, 'text': "Don't need all this space.", 'start': 1120.375, 'duration': 1.061}, {'end': 1126.621, 'text': "And then it's going to be extremely simple to handle what we're going to do whenever the pause button is clicked on.", 'start': 1121.837, 'duration': 4.784}, {'end': 1127.462, 'text': "All we're going to do.", 'start': 1126.861, 'duration': 0.601}, {'end': 1132.104, 'text': 'is send a message, just like we did here time waiting chronometer.', 'start': 1128.022, 'duration': 4.082}, {'end': 1134.125, 'text': 'actually, just copy that whole entire thing.', 'start': 1132.104, 'duration': 2.021}, {'end': 1139.567, 'text': "if we want to stop or pause the chronometer from ticking, we're just going to call stop on it.", 'start': 1134.125, 'duration': 5.442}, {'end': 1140.527, 'text': 'that was pretty easy.', 'start': 1139.567, 'duration': 0.96}, {'end': 1148.311, 'text': "and then, if we want to reset it, I'm just going to copy this whole entire thing, bounce that in there and then call reset chronometer button.", 'start': 1140.527, 'duration': 7.784}, {'end': 1150.632, 'text': "and I'm just going to go time waiting chronometer.", 'start': 1148.311, 'duration': 2.321}], 'summary': 'Handling pause, stop, and reset functions for the chronometer.', 'duration': 30.257, 'max_score': 1120.375, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws1120375.jpg'}, {'end': 1248.501, 'src': 'heatmap', 'start': 1159.216, 'weight': 1, 'content': [{'end': 1167.6, 'text': 'and then, if I want to set my time counter as well for the number of seconds you were forced to be waiting for the waitress to zero.', 'start': 1159.216, 'duration': 8.384}, {'end': 1169.581, 'text': "I'm going to do that and that is it.", 'start': 1167.6, 'duration': 1.981}, {'end': 1171.922, 'text': 'all of our code has been done.', 'start': 1169.581, 'duration': 2.341}, {'end': 1175.884, 'text': "so let's save everything, jump over here, make sure you save everything and execute.", 'start': 1171.922, 'duration': 3.962}, {'end': 1178.559, 'text': 'And here is our tip calculator.', 'start': 1177.099, 'duration': 1.46}, {'end': 1181.54, 'text': 'And if I come in here and say change this to $12.', 'start': 1179.019, 'duration': 2.521}, {'end': 1184.541, 'text': 'And the tip here is set for zero.', 'start': 1181.54, 'duration': 3.001}, {'end': 1186.821, 'text': 'And of course, all that stuff still works.', 'start': 1184.601, 'duration': 2.22}, {'end': 1189.502, 'text': 'And you can see final bill change as it goes on the screen.', 'start': 1186.861, 'duration': 2.641}, {'end': 1193.903, 'text': "But as soon as I would come in here and type in friendly, it's automatically going to change the tip amount.", 'start': 1189.882, 'duration': 4.021}, {'end': 1200.084, 'text': 'If they also talk about the specials, give their opinion, provide good availability, you can see that that is all going up.', 'start': 1194.183, 'duration': 5.901}, {'end': 1204.825, 'text': 'Here is our drop down if they were good at problem solving, 17%.', 'start': 1200.284, 'duration': 4.541}, {'end': 1212.27, 'text': "And then you can also see here with the chronometer, if I hit start, it's going to start calculating the number of seconds that I need to wait.", 'start': 1204.825, 'duration': 7.445}, {'end': 1218.775, 'text': 'And remember, this is set for 19, that I set this for 10 seconds that I was willing to wait.', 'start': 1212.611, 'duration': 6.164}, {'end': 1224.399, 'text': "Now watch 19 here, because I'm going to hit, start right here and see how it dropped down by 4?", 'start': 1218.855, 'duration': 5.544}, {'end': 1227.141, 'text': 'Well, the reason why is they lost that part of their tip?', 'start': 1224.399, 'duration': 2.742}, {'end': 1230.904, 'text': 'because it took them more than 10 seconds to get me my food or whatever.', 'start': 1227.141, 'duration': 3.763}, {'end': 1234.087, 'text': 'And then, of course, the pause works, as you can see.', 'start': 1231.624, 'duration': 2.463}, {'end': 1236.609, 'text': 'Start again works, and there it goes again.', 'start': 1234.167, 'duration': 2.442}, {'end': 1239.312, 'text': 'Pause, and then I can hit reset, and it goes to zero.', 'start': 1236.89, 'duration': 2.422}, {'end': 1243.356, 'text': 'So there are a whole bunch of different things you can do with Android.', 'start': 1239.552, 'duration': 3.804}, {'end': 1244.517, 'text': 'Hope you have fun with them.', 'start': 1243.556, 'duration': 0.961}, {'end': 1246.88, 'text': 'Please leave any questions or comments below.', 'start': 1244.678, 'duration': 2.202}, {'end': 1248.501, 'text': 'Otherwise, until next time.', 'start': 1247.4, 'duration': 1.101}], 'summary': 'Tip calculator with time counter and feedback mechanism for service speed.', 'duration': 89.285, 'max_score': 1159.216, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws1159216.jpg'}], 'start': 1063.009, 'title': 'Building tip calculator app', 'summary': 'Covers building a tip calculator app, including setting the time counter and updating the tip amount based on user input, with an emphasis on automation and real-time updates. it involves implementing functionality for calculating tip amounts based on waiting times and handling pause and reset buttons in a simple application. additionally, it demonstrates various functions and features of android, such as problem-solving abilities at 17%, a chronometer to calculate waiting time, and the impact of time on customer satisfaction.', 'chapters': [{'end': 1159.216, 'start': 1063.009, 'title': 'Implementing pause and reset buttons', 'summary': 'Involves implementing functionality for calculating tip amounts based on waiting times, updating tip and final bill, and handling pause and reset buttons in a simple application.', 'duration': 96.207, 'highlights': ['Implement functionality to calculate tip amounts based on waiting times, deducting two points if more than 10 seconds and adding two points if less, affecting the tip amount and final bill.', 'Handling the pause button involves stopping the chronometer from ticking by calling the stop method, while resetting involves calling the reset and set base methods to reset the chronometer back to zero.', 'The process involves updating the tip amount, final bill, and implementing functionality for the pause and reset buttons in a simple application.']}, {'end': 1200.084, 'start': 1159.216, 'title': 'Building tip calculator app', 'summary': 'Covers the process of building a tip calculator app, including setting the time counter and updating the tip amount based on user input, with an emphasis on automation and real-time updates.', 'duration': 40.868, 'highlights': ['The app enables setting the time counter for the number of seconds the user is waiting for the waitress, enhancing user experience with real-time updates and automation.', "It demonstrates the functionality of updating the tip amount based on user input, showcasing the app's responsiveness and usability.", 'The code is completed, and the app is successfully executed, indicating successful app development and functionality.']}, {'end': 1248.501, 'start': 1200.284, 'title': 'Android functions and features', 'summary': 'Demonstrates various functions and features of android, such as problem-solving abilities at 17%, a chronometer to calculate waiting time, and the impact of time on customer satisfaction.', 'duration': 48.217, 'highlights': ['The chapter highlights the problem-solving abilities of individuals at 17%, demonstrating the importance of this skill in using Android applications.', 'It showcases the functionality of the chronometer in calculating waiting time, emphasizing the practical usage of this feature for time management.', 'The impact of time on customer satisfaction is highlighted, as a delay of more than 10 seconds resulted in a drop of 4, illustrating the direct correlation between time efficiency and user experience.', 'The demonstration of various Android functions and features is mentioned, encouraging viewers to explore and experiment with the capabilities of the platform.', 'The chapter concludes with an invitation for questions or comments, fostering engagement and interaction with the audience.']}], 'duration': 185.492, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/rU9GFV1M4Ws/pics/rU9GFV1M4Ws1063009.jpg', 'highlights': ['Implement functionality to calculate tip amounts based on waiting times, deducting two points if more than 10 seconds and adding two points if less, affecting the tip amount and final bill.', 'The app enables setting the time counter for the number of seconds the user is waiting for the waitress, enhancing user experience with real-time updates and automation.', 'The impact of time on customer satisfaction is highlighted, as a delay of more than 10 seconds resulted in a drop of 4, illustrating the direct correlation between time efficiency and user experience.', 'Handling the pause button involves stopping the chronometer from ticking by calling the stop method, while resetting involves calling the reset and set base methods to reset the chronometer back to zero.', 'The chapter highlights the problem-solving abilities of individuals at 17%, demonstrating the importance of this skill in using Android applications.', 'It demonstrates the functionality of the chronometer in calculating waiting time, emphasizing the practical usage of this feature for time management.', 'The process involves updating the tip amount, final bill, and implementing functionality for the pause and reset buttons in a simple application.', 'The demonstration of various Android functions and features is mentioned, encouraging viewers to explore and experiment with the capabilities of the platform.', 'The code is completed, and the app is successfully executed, indicating successful app development and functionality.', "It showcases the functionality of updating the tip amount based on user input, showcasing the app's responsiveness and usability.", 'The chapter concludes with an invitation for questions or comments, fostering engagement and interaction with the audience.']}], 'highlights': ['The app enables setting the time counter for the number of seconds the user is waiting for the waitress, enhancing user experience with real-time updates and automation.', 'The chapter emphasizes the use of get selected item method to check the selected option from the dropdown box.', 'The method also includes assigning a three tip for providing service or availability and a six tip for good service.', 'The tutorial focuses on handling events triggered by radio buttons, radio groups, check boxes, and drop downs created in part 4 of the Android development tutorial.', 'The process involves updating the tip amount, final bill, and implementing functionality for the pause and reset buttons in a simple application.', "The chapter explains the process of updating tip and final bill based on changes in the editable text area, 'tip amount', and handling different events in Java code.", 'The chapter focuses on determining tip amounts based on service quality and simplifying the process.', 'The demonstration of various Android functions and features is mentioned, encouraging viewers to explore and experiment with the capabilities of the platform.', "Setting up tip calculation using waitress's new checklist options involves creating a checklist total and then setting the tip amount based on the total and a percentage, providing a straightforward way to handle tip calculation on Android.", 'The impact of time on customer satisfaction is highlighted, as a delay of more than 10 seconds resulted in a drop of 4, illustrating the direct correlation between time efficiency and user experience.']}