/** 查询选中省内的所有的市,优先从数据库查询,如果没有查询到再去服务器上查询。 */
 private void queryCities() {
   cityList = coolWeatherDB.loadCities(selectedProvince.getId());
   if (cityList.size() > 0) {
     dataList.clear();
     for (City city : cityList) {
       dataList.add(city.getCityName());
     }
     adapter.notifyDataSetChanged();
     listView.setSelection(0);
     titleText.setText(selectedProvince.getProvinceName());
     currentLevel = LEVEL_CITY;
   } else {
     queryFromServer(selectedProvince.getProvinceCode(), "city");
   }
 }
 /** 查询选中省内的所有的市,优先从数据库查询,如果没有查询到再去服务器上查询。 */
 private void queryCountries() {
   countryList = coolWeatherDB.loadCounties(selectedCity.getId());
   if (countryList.size() > 0) {
     dataList.clear();
     for (Country country : countryList) {
       dataList.add(country.getCountryName());
     }
     adapter.notifyDataSetChanged();
     listView.setSelection(0);
     titleText.setText(selectedCity.getCityName());
     currentLevel = LEVEL_COUNTRY;
   } else {
     queryFromServer(selectedCity.getCityCode(), "country");
   }
 }
 /** 查询全国所有的省,优先从数据库查询,如果没有查询到再去服务器上查询。 */
 private void queryProvinces() {
   provinceList = coolWeatherDB.loadProvince();
   if (provinceList.size() > 0) {
     dataList.clear();
     for (Province province : provinceList) {
       dataList.add(province.getProvinceName());
     }
     adapter.notifyDataSetChanged();
     listView.setSelection(0);
     titleText.setText("中国");
     currentLevel = LEVEL_PROVINCE;
   } else {
     queryFromServer(null, "province");
   }
 }
 @Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   isFromWeatherActivity = getIntent().getBooleanExtra("from_weather_activity", false);
   SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
   if (prefs.getBoolean("city_selected", false) && !isFromWeatherActivity) {
     Intent intent = new Intent(this, WeatherActivity.class);
     startActivity(intent);
     finish();
     return;
   }
   requestWindowFeature(Window.FEATURE_NO_TITLE);
   setContentView(R.layout.choose_area);
   listView = (ListView) findViewById(R.id.list_view);
   titleText = (TextView) findViewById(R.id.title_text);
   adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dataList);
   listView.setAdapter(adapter);
   coolWeatherDB = CoolWeatherDB.getInstance(this);
   listView.setOnItemClickListener(
       new AdapterView.OnItemClickListener() {
         @Override
         public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
           if (currentLevel == LEVEL_PROVINCE) {
             selectedProvince = provinceList.get(position);
             queryCities();
           } else if (currentLevel == LEVEL_CITY) {
             selectedCity = cityList.get(position);
             queryCountries();
           } else if (currentLevel == LEVEL_COUNTRY) {
             String countryCode = countryList.get(position).getCountryCode();
             Intent intent = new Intent(ChooseAreaActivity.this, WeatherActivity.class);
             intent.putExtra("country_code", countryCode);
             startActivity(intent);
             finish();
           }
         }
       });
   queryProvinces();
 }