点击条目弹出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(); } }