var MyCount:TextView? = null The ? means it's "nullable" which is akin to saying it's a pointer. Not the same as a pointer but akin to a pointer, meaning that the value of null is allowed. Later on, if I say MyCount!!.text, I'm saying "I know for a fact that MyCount is not null, so follow the pointer." If MyCount is null--I lied--and the program crashes. I declared MyCount as TextView? so that I can initialize it as a global variable without creating a new one. A TextView? is allowed to be null. A TextView is not allowed to be null. So, if MyCount had been a TextView, I would have said MyCount.text without the !! since, in this case, MyCount isn't nullable; it has to point to something, and the !! isn't necessary.