当前位置:K88软件开发文章中心编程语言APP编程Android01 → 文章内容

12.2 DrySister看妹子应用(第一版)——2.解析后台数据

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-12 6:28:17

resh); showImg = (ImageView) findViewById(R.id.img_show); showBtn.setOnClickListener(this); refreshBtn.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_show: if(data != null && !data.isEmpty()) { if (curPos > 9) { curPos = 0; } loader.load(showImg, data.get(curPos).getUrl()); curPos++; } break; case R.id.btn_refresh: page++; new SisterTask(page).execute(); curPos = 0; break; } } private class SisterTask extends AsyncTask<Void,Void,ArrayList<Sister>> { private int page; public SisterTask(int page) { this.page = page; } @Override protected ArrayList<Sister> doInBackground(Void... params) { return sisterApi.fetchSister(10,page); } @Override protected void onPostExecute(ArrayList<Sister> sisters) { super.onPostExecute(sisters); data.clear(); data.addAll(sisters); } }}核心是这些,还有一些小改动,加了个Application的类,调整了一下结构,变成这样的:3.运行效果图4.提交代码,合并分支,删除分支依次键入命令提交代码:提交完到Github上可以看到:因为没下载Github客户端,所以分支合并就用命令行走一发了:切到develop分支上,走一波merge parse_json然后把合并后的develop提交到Github,(因为一个人开发,所以基本不用处理冲突好的,推完看到github上的develop内容已经发生了变化那么开辟的这个parse_json分支,现在已经没什么作用了,我们可以用命令删掉这个分支:当然,这里我们删除的只是本地仓库,Github上还是有这个分支的,再键入命令:然后到GitHub上面看看:好的,分支已经被删除了!develop分支上的代码也是最新的代码了!Bug修复——(2016.8.9):今天群里的B神和我反馈了下new AsyncTask可能会导致内存溢出的问题,仔细一想确实有这个可能,时间关系写的时候并没有注意这个,特意开了个 asyncTask_bug 的分支来修复这个问题,对MainActivity的代码进行了修改,修改后的代码如下:public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button showBtn; private Button refreshBtn; private ImageView showImg; private ArrayList<Sister> data; private int curPos = 0; //当前显示的是哪一张 private int page = 1; //当前页数 private PictureLoader loader; private SisterApi sisterApi; private SisterTask sisterTask; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sisterApi = new SisterApi(); loader = new PictureLoader(); initData(); initUI(); } private void initData() { data = new ArrayList<>(); } private void initUI() { showBtn = (Button) findViewById(R.id.btn_show); refreshBtn = (Button) findViewById(R.id.btn_refresh); showImg = (ImageView) findViewById(R.id.img_show); showBtn.setOnClickListener(this); refreshBtn.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_show: if(data != null && !data.isEmpty()) { if (curPos > 9) { curPos = 0; } loader.load(showImg, data.get(curPos).getUrl()); curPos++; } break; case R.id.btn_refresh: sisterTask = new SisterTask(); sisterTask.execute(); curPos = 0; break; } } private class SisterTask extends AsyncTask<Void,Void,ArrayList<Sister>> { public SisterTask() { } @Override protected ArrayList<Sister> doInBackground(Void... params) { return sisterApi.fetchSister(10,page); } @Override protected void onPostExecute(ArrayList<Sister> sisters) { super.onPostExecute(sisters); data.clear(); data.addAll(sisters); page++; } @Override protected void onCancelled() { super.onCancelled(); sisterTask = null; } } @Override protected void onDestroy() { super.onDestroy(); sisterTask.cancel(true); }}源码下载:DrySister

上一页  [1] [2] 


12.2 DrySister看妹子应用(第一版)——2.解析后台数据