-
吸取老师的教训,一定要去注册这样的一个事件。。。表示想半天没想到为啥不行,看到这儿才笑哭。查看全部
-
LruCache类实现缓存算法查看全部
-
异步加载的两种方式:多线程/线程池、 AsyncTask查看全部
-
所有耗时任务都必须放在单独的线程中,而不能阻碍UI线程查看全部
-
api地址:http://www.imooc.com/api/teacher?type=4&num=30查看全部
-
获取网络数据简单粗暴查看全部
-
先学课程: asnyTask; BaseAdapter查看全部
-
刷新混乱的问题问题是由于快速滚动时,同一个位置的item可能被设置了多次图片显示。 而由于线程是异步的,导致后面会有多个线程在跑。 第一次测试的线程还没有跑完,第二次的线程又开始了。 所以同一个位置会被设置多次图片。 设置了tag之后,之后一次设置的tag会和item绑定。 所以第一次的线程跑完设置图片的时候,tag已经更新为新的url了,所以本次设置图片就放弃了。查看全部
-
异步加载 1. 主线程中不能做耗时操作,只能更新UI 下面的例子 2. 获取jsonData url = http://www.imooc.com/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类的字节流转换成字符流 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循环就可以将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适配器的原始数据。查看全部
-
异步加载总结 本章节的列子是实现类似淘宝店家的图片缓存加载查看全部
-
异步加载 4-3 滚动状态判断和处理 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
提交
取消