博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ViewPager加载Activity
阅读量:4493 次
发布时间:2019-06-08

本文共 11212 字,大约阅读时间需要 37 分钟。

1 package com.hengxun.moblietoken;  2   3 import java.util.ArrayList;  4 import java.util.List;  5 import com.hengxun.moblietoken.dao.Dao;  6 import com.hengxun.update.UpdateManager;  7   8 import android.R.color;  9 import android.app.Activity; 10 import android.app.AlertDialog; 11 import android.app.LocalActivityManager; 12 import android.content.Context; 13 import android.content.DialogInterface; 14 import android.content.Intent; 15 import android.os.Bundle; 16 import android.os.Parcelable; 17 import android.support.v4.view.PagerAdapter; 18 import android.support.v4.view.ViewPager; 19 import android.support.v4.view.ViewPager.OnPageChangeListener; 20 import android.view.Gravity; 21 import android.view.KeyEvent; 22 import android.view.LayoutInflater; 23 import android.view.View; 24 import android.view.Window; 25 import android.widget.RelativeLayout; 26 import android.widget.TabHost; 27 import android.widget.TabHost.OnTabChangeListener; 28 import android.widget.TextView; 29  30 /** 31  *  32  * @author veandy 33  * @version 1.0.0 34  * @2012-5-31 下午2:02:15 35  *  36  */ 37 public class ViewPagerActivity extends Activity { 38  39     /* list集合 */ 40     List
listViews; 41 /* 上下文对象 */ 42 Context context = null; 43 /* Activity对象 */ 44 LocalActivityManager manager = null; 45 /* 选项卡对象 */ 46 TabHost tabHost = null; 47 /* Viewpager...这个不会翻译 */ 48 private ViewPager pager = null; 49 50 @Override 51 protected void onCreate(Bundle savedInstanceState) { 52 super.onCreate(savedInstanceState); 53 requestWindowFeature(Window.FEATURE_NO_TITLE); 54 setContentView(R.layout.activity_view_pager); 55 56 context = ViewPagerActivity.this; 57 /* 实例化viewpager */ 58 pager = (ViewPager) findViewById(R.id.viewpager); 59 60 // 定放一个放view的list,用于存放viewPager用到的view 61 listViews = new ArrayList
(); 62 63 manager = new LocalActivityManager(this, true); 64 /* 这个state就是当前Activity的状态参数,就是onCreate(Bundle 65 savedInstanceState)里面这个savedInstanceState*/ 66 manager.dispatchCreate(savedInstanceState); 67 68 Intent i1 = new Intent(context, Token.class); 69 listViews.add(getView("A", i1)); 70 Intent i2 = new Intent(context, PlatformHelperActivity.class); 71 listViews.add(getView("B", i2)); 72 Intent i3 = new Intent(context, SystemActivity.class); 73 listViews.add(getView("C", i3)); 74 75 tabHost = (TabHost) findViewById(R.id.tabhost); 76 tabHost.setup(); 77 tabHost.setup(manager); 78 79 // 这儿主要是自定义一下tabhost中的tab的样式 80 RelativeLayout tabIndicator1 = (RelativeLayout) LayoutInflater.from( 81 this).inflate(R.layout.tabwidget, null); 82 final TextView tvTab1 = (TextView) tabIndicator1 83 .findViewById(R.id.tv_title); 84 tvTab1.setTextSize(16); 85 tvTab1.setText("密码验证"); 86 87 RelativeLayout tabIndicator2 = (RelativeLayout) LayoutInflater.from( 88 this).inflate(R.layout.tabwidget, null); 89 final TextView tvTab2 = (TextView) tabIndicator2 90 .findViewById(R.id.tv_title); 91 tvTab2.setTextSize(16); 92 tvTab2.setText("平台助手"); 93 94 RelativeLayout tabIndicator3 = (RelativeLayout) LayoutInflater.from( 95 this).inflate(R.layout.tabwidget, null); 96 final TextView tvTab3 = (TextView) tabIndicator3 97 .findViewById(R.id.tv_title); 98 tvTab3.setTextSize(16); 99 tvTab3.setText("设置");100 101 Intent intent = new Intent(context, TestActivity.class);102 // 注意这儿Intent中的activity不能是自身103 // 比如“A”对应的是T1Activity,后面intent就new的T3Activity的。104 tabHost.addTab(tabHost.newTabSpec("A").setIndicator(tabIndicator1)105 .setContent(intent));106 tabHost.addTab(tabHost.newTabSpec("B").setIndicator(tabIndicator2)107 .setContent(intent));108 tabHost.addTab(tabHost.newTabSpec("C").setIndicator(tabIndicator3)109 .setContent(intent));110 111 pager.setAdapter(new MyPageAdapter(listViews));112 113 tvTab1.setBackgroundDrawable(getResources().getDrawable(114 R.drawable.button));115 tvTab1.setTextColor(getResources().getColor(color.black));116 tvTab1.setGravity(Gravity.CENTER);117 tvTab2.setGravity(Gravity.CENTER);118 tvTab3.setGravity(Gravity.CENTER);119 120 UpdateManager manager1 = new UpdateManager(this);121 manager1.checkUpdate();122 123 pager.setOnPageChangeListener(new OnPageChangeListener() {124 public void onPageSelected(int position) {125 // 当viewPager发生改变时,同时改变tabhost上面的currentTab126 tabHost.setCurrentTab(position);127 switch (position) {128 case 0:129 130 tvTab1.setBackgroundDrawable(getResources().getDrawable(131 R.drawable.button));132 tvTab1.setTextColor(getResources().getColor(color.black));133 tvTab1.setGravity(Gravity.CENTER);134 tvTab2.setTextColor(getResources().getColor(color.white));135 tvTab3.setTextColor(getResources().getColor(color.white));136 tvTab2.setBackgroundColor(000000);137 tvTab3.setBackgroundColor(000000);138 break;139 case 1:140 tvTab2.setBackgroundDrawable(getResources().getDrawable(141 R.drawable.button));142 tvTab2.setTextColor(getResources().getColor(color.black));143 tvTab2.setGravity(Gravity.CENTER);144 tvTab1.setTextColor(getResources().getColor(color.white));145 tvTab3.setTextColor(getResources().getColor(color.white));146 tvTab1.setBackgroundColor(000000);147 tvTab3.setBackgroundColor(000000);148 149 break;150 case 2:151 152 tvTab3.setBackgroundDrawable(getResources().getDrawable(153 R.drawable.button));154 tvTab3.setTextColor(getResources().getColor(color.black));155 tvTab3.setGravity(Gravity.CENTER);156 tvTab2.setTextColor(getResources().getColor(color.white));157 tvTab1.setTextColor(getResources().getColor(color.white));158 tvTab1.setBackgroundColor(000000);159 tvTab2.setBackgroundColor(000000);160 161 break;162 163 default:164 break;165 }166 167 }168 169 public void onPageScrolled(int arg0, float arg1, int arg2) {170 }171 172 public void onPageScrollStateChanged(int arg0) {173 }174 });175 176 // 点击tabhost中的tab时,要切换下面的viewPager177 tabHost.setOnTabChangedListener(new OnTabChangeListener() {178 public void onTabChanged(String tabId) {179 180 if ("A".equals(tabId)) {181 pager.setCurrentItem(0);182 }183 if ("B".equals(tabId)) {184 185 pager.setCurrentItem(1);186 }187 if ("C".equals(tabId)) {188 pager.setCurrentItem(2);189 }190 }191 });192 193 }194 195 /**196 * 退后键的监听197 */198 @Override199 public boolean onKeyDown(int keyCode, KeyEvent event) {200 switch (keyCode) {201 case KeyEvent.KEYCODE_BACK:202 AlertDialog.Builder build = new AlertDialog.Builder(this);203 build.setTitle("注意")204 .setMessage("关键时刻你确定要退出吗?")205 .setPositiveButton("确定",206 new DialogInterface.OnClickListener() {207 /**208 * 用户点击确定后马上finish209 */210 @Override211 public void onClick(DialogInterface dialog,212 int which) {213 // Thread.interrupted();214 finish();215 216 }217 })218 .setNegativeButton("取消",219 new DialogInterface.OnClickListener() {220 /**221 * 用户点击取消不做任何动作222 */223 @Override224 public void onClick(DialogInterface dialog,225 int which) {226 227 }228 }).show();229 break;230 231 default:232 break;233 }234 return false;235 236 // return super.onKeyDown(keyCode, event);237 238 }239 240 @Override241 protected void onDestroy() {242 super.onDestroy();243 ((Dao) this.getApplication()).setBeginForWhile(false);244 ((Dao) this.getApplication()).setBegin(false);245 System.out.println(((Dao) this.getApplication()).isBeginForWhile());246 247 }248 249 private View getView(String id, Intent intent) {250 return manager.startActivity(id, intent).getDecorView();251 }252 253 private class MyPageAdapter extends PagerAdapter {254 255 private List
list;256 257 private MyPageAdapter(List
list) {258 this.list = list;259 }260 261 @Override262 public void destroyItem(View view, int position, Object arg2) {263 ViewPager pViewPager = ((ViewPager) view);264 pViewPager.removeView(list.get(position));265 }266 267 @Override268 public void finishUpdate(View arg0) {269 }270 271 @Override272 public int getCount() {273 return list.size();274 }275 276 @Override277 public Object instantiateItem(View view, int position) {278 ViewPager pViewPager = ((ViewPager) view);279 pViewPager.addView(list.get(position));280 return list.get(position);281 }282 283 @Override284 public boolean isViewFromObject(View arg0, Object arg1) {285 return arg0 == arg1;286 }287 288 @Override289 public void restoreState(Parcelable arg0, ClassLoader arg1) {290 }291 292 @Override293 public Parcelable saveState() {294 return null;295 }296 297 @Override298 public void startUpdate(View arg0) {299 }300 301 }302 303 }

 

转载于:https://www.cnblogs.com/vistal/archive/2013/05/08/3067174.html

你可能感兴趣的文章
SVN、GIT比较
查看>>
asp后台读id设置样式
查看>>
设计模式(总)
查看>>
求1+2+3+...+n的值
查看>>
毛玻璃背景效果
查看>>
每天一个linux命令(26)--用SecureCRT来上传和下载文件
查看>>
心态回归
查看>>
VS2005编译GEOS GDAL
查看>>
TortoiseGit连接github不用每次输入用户名和密码的方法
查看>>
vim(gvim)相关插件整理
查看>>
使用alembic进行数据库版本管理
查看>>
hdfs集群(hadoop_03)
查看>>
奇虎360安全牛人全球挑战赛无线部…
查看>>
Uploadify V3.2.1 上传文件报404 Not Found问题解决
查看>>
cocos2d-x发生undefined reference to `XX'异常 一劳永逸解决的方法
查看>>
Android 之 GridView具体解释
查看>>
SQL Server里实现 数据导入导出
查看>>
7-2 寻找大富翁 (25 分)
查看>>
word转html 压缩图片网站
查看>>
阿拉丁工作内容
查看>>