0
点赞
收藏
分享

微信扫一扫

android网易顶部导航栏demo·下

      具体宽度样式大家可以自己调节,然后看一下核心类:


  1. import android.app.ActivityGroup;  
  2. import android.app.AlertDialog;  
  3. import android.app.LocalActivityManager;  
  4. import android.content.Context;  
  5. import android.content.DialogInterface;  
  6. import android.content.Intent;  
  7. import android.os.Bundle;  
  8. import android.view.KeyEvent;  
  9. import android.view.View;  
  10. import android.view.animation.Animation;  
  11. import android.view.animation.AnimationUtils;  
  12. import android.widget.Button;  
  13. import android.widget.LinearLayout;  
  14. import android.widget.RadioGroup;  
  15. import android.widget.TextView;  
  16. import android.widget.RadioGroup.OnCheckedChangeListener;  
  17. public class AddExamActivity extends ActivityGroup {  
  18.     protected Button btn_leftTop, btn_rightTop;  
  19.     protected TextView tv_head;  
  20.     private  static LocalActivityManager manager;  
  21.     private  RadioGroup radioGroup;  
  22.     private  static LinearLayout container;  
  23.     public  static Context context;  
  24.     @Override  
  25.     protected void onCreate(Bundle savedInstanceState) {  
  26.         // TODO Auto-generated method stub  
  27.         super.onCreate(savedInstanceState);  
  28.         setContentView(R.layout.addexam);  
  29.         context=this;  
  30.         initHead();  
  31.         manager=getLocalActivityManager();  
  32.         container= (LinearLayout)findViewById(R.id.container);  
  33.         radioGroup=(RadioGroup) this.findViewById(R.id.add_tab_group);  
  34.         container.removeAllViews();  
  35.         container.addView(manager.startActivity(  
  36.                 "PAGE_0",  
  37.                 new Intent(context, MyExamActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))  
  38.                 .getDecorView());  
  39.         radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {  
  40.             @Override  
  41.             public void onCheckedChanged(RadioGroup group, int checkedId) {  
  42.                 // TODO Auto-generated method stub  
  43.                 switch (checkedId) {  
  44.                 case R.id.main_tab_addExam://添加考试  
  45.                     container.removeAllViews();  
  46.                     container.addView(manager.startActivity(  
  47.                             "PAGE_0",  
  48.                             new Intent(context, MyExamActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))  
  49.                             .getDecorView());  
  50.                     break;  
  51.                 case R.id.main_tab_myExam://我的考试  
  52.                     container.removeAllViews();  
  53.                     container.addView(manager.startActivity(  
  54.                             "PAGE_1",  
  55.                             new Intent(context, MyMessageActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))  
  56.                             .getDecorView());  
  57.                     break;  
  58.                 case R.id.main_tab_message://我的通知  
  59.                     container.removeAllViews();  
  60.                     container.addView(manager.startActivity(  
  61.                             "PAGE_2",  
  62.                             new Intent(context, SettingActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))  
  63.                             .getDecorView());  
  64.                     break;  
  65.                 case R.id.main_tab_testing://测试  
  66.                     container.removeAllViews();  
  67.                     container.addView(manager.startActivity(  
  68.                             "PAGE_3",  
  69.                             new Intent(context, TestingActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))  
  70.                             .getDecorView());  
  71.                     break;  
  72.                 case R.id.main_tab_settings://设置  
  73.                     container.removeAllViews();  
  74.                     container.addView(manager.startActivity(  
  75.                             "PAGE_4",  
  76.                             new Intent(context, MyExamActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))  
  77.                             .getDecorView());  
  78.                     break;  
  79.                 default:  
  80.                     //tabHost.setCurrentTabByTag("我的考试");  
  81.                     break;  
  82.                 }  
  83.             }  
  84.         });  
  85.     }  
  86.     public static void changeTo(){  
  87.         Animation slideLeftIn = AnimationUtils.loadAnimation(context, R.anim.slide_bottom_in_no_alpha);  
  88.         container.removeAllViews();  
  89.         container.addView(manager.startActivity(  
  90.                 "PAGE_4",  
  91.                 new Intent(context, MyExamActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))  
  92.                 .getDecorView());  
  93.         container.startAnimation(slideLeftIn);  
  94.     }  
  95.     protected void initHead() {  
  96.         btn_leftTop = (Button) findViewById(R.id.btn_leftTop);  
  97.         btn_rightTop = (Button) findViewById(R.id.btn_rightTop);  
  98.         tv_head = (TextView) findViewById(R.id.tv_head);  
  99.         btn_leftTop.setVisibility(View.INVISIBLE);  
  100.         tv_head.setText("添加考试");  
  101.     }  
  102.    @Override  
  103.     public boolean onKeyDown(int keyCode, KeyEvent event) {  
  104.         // TODO Auto-generated method stub  
  105.         if (keyCode == KeyEvent.KEYCODE_BACK) {  
  106.             AlertDialog.Builder builder = new AlertDialog.Builder(getParent());  
  107.             builder.setMessage("你确定退出吗?")  
  108.                     .setCancelable(false)  
  109.                     .setPositiveButton("确定",  
  110.                             new DialogInterface.OnClickListener() {  
  111.                                 public void onClick(DialogInterface dialog,  
  112.                                         int id) {  
  113.                                     finish();  
  114.                                     System.exit(0);  
  115.                                 }  
  116.                             })  
  117.                     .setNegativeButton("返回",  
  118.                             new DialogInterface.OnClickListener() {  
  119.                                 public void onClick(DialogInterface dialog,  
  120.                                         int id) {  
  121.                                     dialog.cancel();  
  122.                                 }  
  123.                             });  
  124.             AlertDialog alert = builder.create();  
  125.             alert.show();  
  126.             return true;  
  127.         }  
  128.         return super.onKeyDown(keyCode, event);  
  129.     }  
  130. }  

      这里继承了ActivityGroup,没有使用过的朋友从百度搜索下就明白了。


     使用了LocalActivityManager启动子activity,这里Context和LinearLayout使用了static静态的,这是因为变态的需求使我不得不这样做,希望大家不要把这两个变量设置成static的,因为static的生命周期很长特别是Context不要设置成static,这样的话当前的activity很难被销毁的。其实使用tabhost完全可以实现,但是为什么没使用tabhost的我相信大家都明白,如果不考虑内存的话我也会使用,哈哈!

     

      最后附上源码下载地址,有兴趣大家自己下载吧!点击打开链接


举报

相关推荐

0 条评论