-
吸取老師的教訓,一定要去注冊這樣的一個事件。。。表示想半天沒想到為啥不行,看到這兒才笑哭。查看全部
-
LruCache類實現緩存算法查看全部
-
異步加載的兩種方式:多線程/線程池、 AsyncTask查看全部
-
所有耗時任務都必須放在單獨的線程中,而不能阻礙UI線程查看全部
-
api地址:http://idcbgp.cn/api/teacher?type=4&num=30查看全部
-
獲取網絡數據簡單粗暴查看全部
-
先學課程: asnyTask; BaseAdapter查看全部
-
刷新混亂的問題問題是由于快速滾動時,同一個位置的item可能被設置了多次圖片顯示。 而由于線程是異步的,導致后面會有多個線程在跑。 第一次測試的線程還沒有跑完,第二次的線程又開始了。 所以同一個位置會被設置多次圖片。 設置了tag之后,之后一次設置的tag會和item綁定。 所以第一次的線程跑完設置圖片的時候,tag已經更新為新的url了,所以本次設置圖片就放棄了。查看全部
-
異步加載 1. 主線程中不能做耗時操作,只能更新UI 下面的例子 2. 獲取jsonData url = http://idcbgp.cn/api/teacher?type=4&num=30 下面的openStream參數是從URL參數中new URL(url).openStream()獲取的。 private String readStream(InputStream openStream) { InputStreamReader isr; String result = ""; try { String line = ""; //將InputStream類的字節(jié)流轉換成字符流 isr = new InputStreamReader(openStream, "utf-8"); //轉存在BufferedReader中 BufferedReader br = new BufferedReader(isr); while((line = br.readLine())!=null) { result+=line; } } return result; } 3. 解析json數據到List<NewsBean>中 (如圖),通過如下for循環(huán)就可以將jsonString原始字符數據導入到每個NewsBean對象中。 for (int i = 0; i<jsonArray.length(); i++) { jsonObject = jsonArray.getJSONObject(i); newsBean = new NewsBean(); //從jsonObject中得到每個元素數據給newsBean newsBean.image = jsonObject.getString("picSmall"); newsBean.title = jsonObject.getString("name"); newsBean.content = jsonObject.getString("description"); newsBeanList.add(newsBean); } 最后通過newsBeanList.add(newsBean)組成一個List<NewsBean>對象,這是構成Adapter適配器的原始數據。查看全部
-
異步加載總結 本章節(jié)的列子是實現類似淘寶店家的圖片緩存加載查看全部
-
異步加載 4-3 滾動狀態(tài)判斷和處理 02:45-06:30為整個過程的邏輯梳理查看全部
-
異步加載——實現ListView圖文混排邏輯總結 第一步 onCreate中new一個NewsAsyncTask 將url傳遞給getJsonData 實現異步訪問 第二步 getJsonData將url轉換為NewsBean對象 第三步 onPostExecute講NewsBean的數據傳遞給NewsAdapter 第四步 NewsAdapter構造一個ListView數據源 并將數據源設置給ListView查看全部
-
readStream函數 String jsonString=readStream(new....)查看全部
-
獲取json的數據查看全部
-
try { String resultJson = readStream(new URL(url).openStream()); } catch (IOException e) { e.printStackTrace(); } /* * 讀取 json 數據 * * @param is 輸入流 */ private String readStream(InputStream is){ InputStreamReader isr; String result = ""; try{ String line =""; isr = new InputStreamReader(is, "utf-8"); BufferedReader br = new BufferedReader(isr); while((line = br.readLine())!=null){ result += line; } } catch (UnsupportedEncodingException){ e.printStackTrace(); } catch (IOException e){ e.printStackTrace(); } retrun result; }查看全部
舉報
0/150
提交
取消