里面有题
来源:互联网 发布:net snmp windows 64 编辑:程序博客网 时间:2024/04/26 02:47
点击条目弹出AlertDialog(如图2中的选择网络)(15分)
4.选择wifi就直接弹出AlertDialog(如图2中的版本更新)(10分)
5.选择手机流量提醒用户跳转到设置wifi页面(10分)
6.点击版本更新中的确定后使用Xutils3.0根据数据中的url下载apk进行安装(图3)(15分)
7.将下载的apk存储到sdcard中(10分)
public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener { private XListView xlistview; private boolean flag=false; private myadapter adapter; private int index=1; private ProgressDialog progressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); xlistview = (XListView) findViewById(R.id.xlv); xlistview.setPullLoadEnable(true); xlistview.setXListViewListener(this); read(); } private void read(){ String url="http://api.jisuapi.com/news/get"; RequestParams params=new RequestParams(url); params.addBodyParameter("channel","新闻"); params.addBodyParameter("start","0"); params.addBodyParameter("num","10"); params.addBodyParameter("appkey","f687e2d75601ac18"); x.http().post(params, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { Gson gson=new Gson(); MenuInfo menuInfo = gson.fromJson(result, MenuInfo.class); List<MenuInfo.ResultBean.ListBean> list = menuInfo.getResult().getList(); if (adapter==null){ adapter = new myadapter(list); xlistview.setAdapter(adapter); }else { adapter.morde(list,flag); adapter.notifyDataSetChanged(); } } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } }); } @Override public void onRefresh() { ++index; read(); flag=true; xlistview.stopRefresh(true); } @Override public void onLoadMore() { ++index; read(); flag=false; xlistview.stopLoadMore(); } class myadapter extends BaseAdapter{ private List<MenuInfo.ResultBean.ListBean> list; public myadapter(List<MenuInfo.ResultBean.ListBean> list) { this.list = list; } private void morde(List<MenuInfo.ResultBean.ListBean> lists,boolean flag){ for (MenuInfo.ResultBean.ListBean bean : lists) { if (flag) { list.add(0, bean); }else { list.add(bean); } } } @Override public int getCount() { return list!=null?list.size():0; } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { viewholder vh=null; if (convertView==null){ vh=new viewholder(); convertView=convertView.inflate(MainActivity.this,R.layout.xlistview,null); vh.textView = (TextView) convertView.findViewById(R.id.tv); convertView.setTag(vh); }else { vh= (viewholder) convertView.getTag(); } vh.textView.setText(list.get(position).getSrc()); 点击跳转 xlistview.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { new AlertDialog.Builder(MainActivity.this) .setIcon(R.mipmap.ic_launcher) .setTitle("网络选择") .setSingleChoiceItems(new String[]{"wife", "手机流量"}, 2, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { switch (which){ case 0:选择wife new AlertDialog.Builder(MainActivity.this) .setTitle("版本更新") .setMessage("现在检测到新版本,是否更新?") 圆圈属性 .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { downloadApk(); } }) .setNegativeButton("取消",null) .create().show(); break; case 1:选择手机流量 Toast.makeText(MainActivity.this,"跳到wife界面",Toast.LENGTH_SHORT).show(); Intent intent=new Intent(); intent.setAction("android.settings.WIRELESS_SETTINGS"); startActivity(intent); break; } } }).setNegativeButton("取消", null) .show();; } }); return convertView; } } class viewholder{ TextView textView; }Apk下载 private void downloadApk() { String url = "http://gdown.baidu.com/data/wisegame/f98d235e39e29031/baiduxinwen.apk"; String path = Environment.getExternalStorageDirectory().getPath() + "/teme1/myapk.apk"; File file = new File(path); File parentFile = file.getParentFile(); if (!parentFile.exists()) { parentFile.mkdir(); } RequestParams params = new RequestParams(url); params.setAutoRename(false); params.setAutoResume(true); //设置保存路径 params.setSaveFilePath(path); x.http().get(params, new Callback.ProgressCallback<File>() { @Override public void onSuccess(File result) { installDownloadApk(result); } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { cancleProgressDialog(); } @Override public void onWaiting() { } @Override public void onStarted() { showProgressDialog(); } @Override public void onLoading(long total, long current, boolean isDownloading) { int progress = (int) (current / total * 100); if (progress >= 0 && progress <= 100) { updataProgressDialog(progress); } } }); } //安卓开发 apk安装 private void installDownloadApk(File result) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setDataAndType(Uri.fromFile(result), "application/vnd.android.package-archive"); startActivity(intent); } private void cancleProgressDialog() { if (progressDialog == null) { return; } if (progressDialog.isShowing()) { progressDialog.dismiss(); } } private void updataProgressDialog(int progress) { if (progressDialog == null) { return; } progressDialog.setProgress(progress); } private void showProgressDialog() { progressDialog = new ProgressDialog(this); //设置progressDialog显示样式 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progressDialog.setMessage("我正在下载东西"); progressDialog.setTitle("请等待"); progressDialog.setProgress(0); progressDialog.show(); }}
阅读全文
0 0
- 里面有题
- 蛋壳里面有奥秘
- BREW里面有什么
- threadLoccal 里面有什么?
- ExpandableListVIew里面有显示
- algorithm里面有个next_permutation
- ie里面li有空格
- js里面有中文乱码
- 通知里面到底有什么?
- if 语句里面有 return;
- 属性里面不能有this
- algorithm里面有个next_permutation
- 字符谜题9:尽量不要用块注释,尤其是里面有嵌套注释掉情况
- 第一章第五课 蛋壳里面有奥秘
- 你知道CSDN里面有那些明星???
- 判断 "DataTable" 里面有没有值
- linux删除文件夹(里面有文件)
- 论坛里面为什么总是有垃圾出现
- 线程池
- hdu 6170 Two strings (dp)
- Android 去掉状态栏的方法汇总
- 收藏全球最有趣的网站 (下)
- C语言:函数堆内存分配问题剖析
- 里面有题
- 拼接请求网址
- Matlab中fft与fftshift命令的小结与分析
- 基于ssm+freemaker+WebSocket实现的购物商城抢单功能
- phpexcel 使用说明,参数说明
- SpringMVC框架遇到的一个问题
- HashMap之Hash碰撞冲突解决方案及未来改进
- 2017-8-22二叉树
- So Easy! HDU 4565