The question is quite simple. But I want to know where exactly do we make our references to the gui elements? As in which is the best place to define:
final
Well, it depends on your needs. Very often I keep my references to widgets in activity (as a class fields) - and set them in onCreate method. I think that is a good idea
Probably the reason for your nulls is that you are trying to call findViewById() before you set contentView() in your onCreate() method - please check that.