Android版本更新

========================MainActivity对应的布局======================

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >


    <Button
        android:onClick="updata"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="版本升级" />


</RelativeLayout>

=====================MainActivity======================

package com.example.day15_lunbo;


import java.util.ArrayList;
import java.util.List;


import android.app.ActionBar.LayoutParams;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.widget.ImageView;
import android.widget.LinearLayout;


import com.example.adapter.MyPagerAdapter;


public class MainActivity extends Activity {


private ViewPager vp;
private LinearLayout lin;
private int[] msg;
private List<ImageView> msgList;
private List<ImageView> ivlist;


Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
sendMSg();
};
};


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 查找控件
vp = (ViewPager) findViewById(R.id.vp);
lin = (LinearLayout) findViewById(R.id.lin);
// 图片数据
init();
// 初始化小圆点
initDot();
// 轮播
sendMSg();
// 添加适配器
vp.setAdapter(new MyPagerAdapter(MainActivity.this, msgList));
// 监听vp的滑动事件
vp.setOnPageChangeListener(new OnPageChangeListener() {


@Override
public void onPageSelected(int arg0) {
// 遍历小点的集合
for (int i = 0; i < ivlist.size(); i++) {
// 如果当前的索引值和i相等
if (arg0 % ivlist.size() == i) {
// 设置为亮色
ivlist.get(i).setImageResource(R.drawable.dots_focus);
} else {
// 否则为暗色
ivlist.get(i).setImageResource(R.drawable.dots_normal);
}
}
}


@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub


}


@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub


}
});
}


private void sendMSg() {
int currentItem = vp.getCurrentItem();


currentItem++;


vp.setCurrentItem(currentItem);
// 延时消息
handler.sendEmptyMessageDelayed(0, 3000);
}


private void initDot() {
ivlist = new ArrayList<ImageView>();
ivlist.clear();


for (int i = 0; i < msg.length; i++) {
ImageView iv = new ImageView(this);


if (i == 0) {
// 第一张图片,默认给亮的小点
iv.setImageResource(R.drawable.dots_focus);
} else {
iv.setImageResource(R.drawable.dots_normal);
}
// 设置圆点的宽高
LayoutParams params = new LayoutParams(30, 30);
// 圆点间距、
params.setMargins(5, 0, 5, 0);


lin.addView(iv, params);


ivlist.add(iv);


}
}


private void init() {
msg = new int[] { R.drawable.aa, R.drawable.aiqin, R.drawable.b,
R.drawable.bb };


msgList = new ArrayList<ImageView>();


for (int i = 0; i < msg.length; i++) {
ImageView iv = new ImageView(MainActivity.this);


iv.setImageResource(msg[i]);
msgList.add(iv);
}
}


}

==================Update   Bean包==============

package com.example.updataapp.bean;


public class Updata {

private   String  versionCode;

private   String   downloadUrl;


public String getVersionCode() {
return versionCode;
}


public void setVersionCode(String versionCode) {
this.versionCode = versionCode;
}


public String getDownloadUrl() {
return downloadUrl;
}


public void setDownloadUrl(String downloadUrl) {
this.downloadUrl = downloadUrl;
}


public Updata(String versionCode, String downloadUrl) {
super();
this.versionCode = versionCode;
this.downloadUrl = downloadUrl;
}


public Updata() {
super();
// TODO Auto-generated constructor stub
}


@Override
public String toString() {
return "Updata [versionCode=" + versionCode + ", downloadUrl="
+ downloadUrl + "]";
}




}

=====================另外一个类aMyAdapter==============

package com.example.adapter;


import java.util.List;


import android.content.Context;
import android.os.Handler;
import android.support.v4.view.PagerAdapter;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.widget.ImageView;


public class MyAdapter extends PagerAdapter {


Context context;
List<ImageView> list;
private Handler handler;

public MyAdapter(Context context, List<ImageView> list, Handler handler) {
super();
this.context = context;
this.list = list;
this.handler = handler;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
ImageView view = list.get(position%list.size());
container.removeView(view);

}
@Override
public Object instantiateItem(ViewGroup container, int position) {
//通过控件集合获取imageView,添加到容器中,并作为key 返回
ImageView view = list.get(position%list.size());

view.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
//当按下的时候,停止轮播
case MotionEvent.ACTION_DOWN:
//移除所有的回调和消息
handler.removeCallbacksAndMessages(null);
break;
//抬起
case MotionEvent.ACTION_UP:
//取消的时候继续开始录播
handler.sendEmptyMessageDelayed(0, 2000);
break;
//取消的时候,继续轮播
case MotionEvent.ACTION_CANCEL:
handler.sendEmptyMessageDelayed(0, 2000);
break;


default:
break;
}
//false 触摸事件不被消费,true 消费该触摸事件
return true;
}
});


container.addView(view);
return view;
}




}


===========在xml里面配置权限===============

<uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

内容概要:本文档是一份关于交换路由配置的学习笔记,系统地介绍了网络设备的远程管理、交换机与路由器的核心配置技术。内容涵盖Telnet、SSH、Console三种远程控制方式的配置方法;详细讲解了VLAN划分原理及Access、Trunk、Hybrid端口的工作机制,以及端口镜像、端口汇聚、端口隔离等交换技术;深入解析了STP、MSTP、RSTP生成树协议的作用与配置步骤;在路由部分,涵盖了IP地址配置、DHCP服务部署(接口池与全局池)、NAT转换(静态与动态)、静态路由、RIP与OSPF动态路由协议的配置,并介绍了策略路由和ACL访问控制列表的应用;最后简要说明了华为防火墙的安全区域划分与基本安全策略配置。; 适合人群:具备一定网络基础知识,从事网络工程、运维或相关技术岗位1-3年的技术人员,以及准备参加HCIA/CCNA等认证考试的学习者。; 使用场景及目标:①掌握企业网络中常见的交换与路由配置技能,提升实际操作能力;②理解VLAN、STP、OSPF、NAT、ACL等核心技术原理并能独立完成中小型网络搭建与调试;③通过命令示例熟悉华为设备CLI配置逻辑,为项目实施和故障排查提供参考。; 阅读建议:此笔记以实用配置为主,建议结合模拟器(如eNSP或Packet Tracer)动手实践每一条命令,对照拓扑理解数据流向,重点关注VLAN间通信、路由选择机制、安全策略控制等关键环节,并注意不同设备型号间的命令差异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值