編輯:關於Android編程
城市用spinner類存放,讀取xml文件,填充到spinner中。xml文件時在本地的res/raw文件夾中。
並且給三個spinner添加監聽事件。當選擇省份時,存放城市和地區的spinner會作相應變化,同樣,選擇城市時,地區的spinner會作相應變化。
// 當選擇省份時,城市和地方列表會變化 sp_province.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { currentPro = position; cityAdapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_spinner_item, android.R.id.text1, provinces.get(position).getCitys()); cityAdapter .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp_city.setAdapter(cityAdapter); } @Override public void onNothingSelected(AdapterView parent) { } });
當選擇具體的地區時,創建異步類,並把地區名稱作為參數。
// 當選擇地方時,顯示具體的天氣情況 sp_district.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { // 選擇的城市 District dis = districtAdapter.getItem(position); // Log.i(i, dis.getName()); new WeatherAsyncTask().execute(dis.getName()); } @Override public void onNothingSelected(AdapterView parent) { } });
在異步類的doInBackground方法中,從接口中獲取到天氣信息,在這兒處理圖片我是這麼做的,在Weather_data這個類中定義了兩個Bitmap類型的屬性(這兩個屬性在解析從接口獲取到的天氣信息的json字符串時時沒有用的),從網絡上獲取後給這兩個屬性賦值,然後將已經封裝好的Weather傳遞給onPostExecute方法
protected Weather doInBackground(String... params) { String url = HttpUtils.getURl(params[0]); String jsonStr = HttpUtils.getJsonStr(url); Weather weather = HttpUtils.fromJson(jsonStr); Result r = weather.getResults().get(0); List
也可以通過將Weather的具體信息和通過imageUrl獲取到的圖片存放到一個list
在這個方法中,UI線程給布局中的各個控件賦值。
在獲取資源的過程中,我單獨定義了一個工具類,
包含了處理了解析xml文件,解析json字符串和獲取image等方法。
在顯示時,只是用了從百度接口中獲取到的一些屬性,並沒有用全部。不過大體原理應該如此了。
布局文件activity_main.xml gridview_item.xml這個是一個item的單元格樣式的,有圖片和文字 MainActi
最近項目需要,需要做一個BMI指數的指示條,先上效果圖: BMI指數從18到35,然後上面指示條的顏色會隨著偏移量的變化而改變,數字顯示當前的BMI指數,下面的BMI標准
Android 仿照微信發說說,既能實現拍照,選圖庫,多圖案上傳,使用Retrofit技術。使用方法:詳見http://www.jb51.net/article/1030
Android之Adapter用法總結1.Adapter概念定義為將一個類的接口變換成客戶端所期待的一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作