Android页面切换方法和区别
来源:互联网 发布:国内最美的海滩知乎 编辑:程序博客网 时间:2024/06/08 10:59
摘要: 通用的页面跳转方法有两种:1、IntentIntent适合Activity与Activity之间的跳转,按返回键可以直接返回前一页面缺点:需要到Manifest注册Activity2、setContentView适合同一Activity里的不同View之间跳转优点:按返回 ...
通用的页面跳转方法有两种:
1、Intent
Intent适合Activity与Activity之间的跳转,按返回键可以直接返回前一页面
缺点:需要到Manifest注册Activity
2、setContentView
适合同一Activity里的不同View之间跳转
优点:按返回键不会返回到前一页面,需要自己添加按键监听代码来实现
import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.KeyEvent;import android.view.View;import android.view.View.OnClickListener;import android.widget.*;public class IntentTest extends Activity { private LinearLayout mainView=null; private Button button1=null; private Button button2=null; private LinearLayout layout=null; private TextView tv=null; /* * 由于setContentVeiw()函数返回是void,系统中没有提供获取当前View的函数 * 所以此处添加一个整形变量用来指示当前View的id */ private int currentViewId; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //tv初始化 tv=new TextView(this); tv.setText("这是layout里面的tv"); //layout初始化 layout=new LinearLayout(this); layout.setId(100);//这里需要指定id,否则默认的id会和mainView一样,都是-1 layout.setLayoutParams(new LinearLayout.LayoutParams(-1,-1)); layout.addView(tv); //button1初始化 button1=new Button(this); button1.setLayoutParams(new LinearLayout.LayoutParams(-2,-2)); button1.setText("Intent方式跳转"); button1.setOnClickListener(new OnClickListener(){ public void onClick(View v) { /*此处用Intent来实现Activity与Activity之间的跳转*/ Intent intent=new Intent(); intent.setClass(IntentTest.this,MyActivity.class); //Intent intent=new Intent(IntentTest.this,MyActivity.class); startActivity(intent); } }); //button2初始化 button2=new Button(this); button2.setLayoutParams(new LinearLayout.LayoutParams(-2,-2)); button2.setText("setContentView方式跳转"); button2.setOnClickListener(new OnClickListener(){ public void onClick(View v) { //此处用setContentView方式来实现统一Activity不同View跳转 setCurrentView(layout); } }); //mianView初始化 mainView=new LinearLayout(this); mainView.setId(1000);//指定id mainView.setLayoutParams(new LinearLayout.LayoutParams(-1,-1)); mainView.setOrientation(LinearLayout.VERTICAL); mainView.addView(button1); mainView.addView(button2); //显示mainView setCurrentView(mainView); } /* * 这里重写onKeyDown()函数,实现返回键的监听 * 如果通过显示的View对keyListener进行监听,则返回键监听不到 * 所以此处是通过在Activity里面重写onKeyDown()函数来实现监听 * 此处如果不拦截监听的话,在显示layout后按返回键则直接执行退出程序 */ public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if(currentViewId==layout.getId()){ setCurrentView(mainView); }else{ System.exit(0); } return false; } return false; } /*自定义函数setCurrentView()*/ public void setCurrentView(View view){ currentViewId=view.getId(); //此处用setContentView方式来实现统一Activity不同View跳转 setContentView(view); }}
import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class MyActivity extends Activity{ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv=new TextView(this); tv.setText("我是MyActivity里的tv"); setContentView(tv); }}
- Android页面切换方法和区别
- Android页面切换方法和区别
- Android页面切换方法和区别
- Android页面切换方法和区别
- Android页面切换方法和区别
- Android页面切换方法和区别
- 浅析Fragment和ViewPager切换页面方法
- Android使用ActionBar和ViewPager切换页面
- Android使用ActionBar和ViewPager切换页面
- Silverlight页面切换方法
- Activity页面切换方法
- Android 之打造仿微信页面切换公共方法及实现
- android页面切换
- android页面切换动画
- android页面切换
- android 页面切换
- Android屏幕页面的滑动切换和抽取父类
- Android-仿微信左右滑动点击切换页面和图标
- win7 SqlServer2005 Management Studio Express 安装错误提示:29506
- SkinMagic 进行皮肤设置 (SkinMagic使用教程)
- PAT (Basic Level) Practise (中文)—— 1009. 说反话
- 用相对布局实现登陆界面设计
- c++输出格式设置
- Android页面切换方法和区别
- Google发布GAE 1.8.1版
- Mac下删除和安装cocos2d-x
- GZIP压缩
- 【成功解决】ubuntu 12.04 解压 zip 7z rar jar 文件,文件名中文乱码的问题
- SkinMagic使用后按钮加自定义图标或菜单GetMneu返回NULL的解决方法
- 错误笔记!【二】ssh整合问题
- [成功解决]ubuntu12.04 gedit 打开 windows 分区中的 txt 文件乱码,是因为 ubuntu 和 windows 两个系统的编码不同。
- IT零起步-CentOS6.3关于Bacula服务器部署