I got the point, what you are trying to do is dynamically populating drop downs based on a condition. You can do that in two ways:
1. Download the initial data (countries,states and regions) through a sync followed by query, later use a for loop to get the state/region based on the country. This can be done in a single sync call.
2. Sync and get the list of countries and populate in first down, then based on the selected data from the drop down do another sync and get the state, later do another sync and get region. Here you have to make 3 sync calls and its expensive.
You have to use Listener APIs of android to get the values whenever the user select data in drop down.
Midhun VP