Android页面切换方法和区别 分类: Android开发 2014-05-30 10:54 53人阅读 评论(0) 收藏
2014-05-30 10:54
471 查看
通用的页面跳转方法有两种:
1、Intent
Intent适合Activity与Activity之间的跳转,按返回键可以直接返回前一页面
缺点:需要到Manifest注册Activity
2、setContentView
适合同一Activity里的不同View之间跳转
优点:按返回键不会返回到前一页面,需要自己添加按键监听代码来实现
只切换Layout运行速度会快点,因为启动activity是最耗时的。
数据传递也简单,不用Intent.setExtra之类的。
缺点是所有控件的事件处理、加载之类的操作全集中由activity管理,拆分不够清晰
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;
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初始化www.2cto.com
button1=new Button(this);
button1.setLayoutParams(new
LinearLayout.LayoutParams(-2,-2));
button1.setText("Intent方式跳转");
button1.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
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);
}
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;
}
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);
}
}
摘自
英雄小强
1、Intent
Intent适合Activity与Activity之间的跳转,按返回键可以直接返回前一页面
缺点:需要到Manifest注册Activity
2、setContentView
适合同一Activity里的不同View之间跳转
优点:按返回键不会返回到前一页面,需要自己添加按键监听代码来实现
只切换Layout运行速度会快点,因为启动activity是最耗时的。
数据传递也简单,不用Intent.setExtra之类的。
缺点是所有控件的事件处理、加载之类的操作全集中由activity管理,拆分不够清晰
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;
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初始化www.2cto.com
button1=new Button(this);
button1.setLayoutParams(new
LinearLayout.LayoutParams(-2,-2));
button1.setText("Intent方式跳转");
button1.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
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);
}
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;
}
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 Button按钮两个页面切换 分类: Android开发 2014-05-30 10:54 60人阅读 评论(0) 收藏
- android页面切换 分类: Android开发 2014-05-30 10:54 59人阅读 评论(0) 收藏
- Android使用两个Activity页面切换… 分类: Android开发 2014-05-30 10:55 65人阅读 评论(0) 收藏
- Android使用两个Activity页面切换… 分类: Android开发 2014-05-30 10:55 70人阅读 评论(0) 收藏
- Android的eclipse常用操作详解ZZ 分类: Android开发 2014-05-30 10:54 62人阅读 评论(0) 收藏
- Android App应用之提交到各大… 分类: Android开发 2014-05-30 10:54 221人阅读 评论(0) 收藏
- Android的几个常见小错误ZZ 分类: Android开发 2014-05-30 10:54 58人阅读 评论(0) 收藏
- DDMS调试方法介绍 分类: Android开发 2014-05-30 10:54 51人阅读 评论(0) 收藏
- android 打开扬声器zz 分类: Android开发 2014-05-30 10:54 41人阅读 评论(0) 收藏
- android常见错误之 No r… 分类: Android开发 2014-05-30 10:54 59人阅读 评论(0) 收藏
- 发布Android应用程序过程GOOD 分类: Android开发 2014-05-30 10:53 53人阅读 评论(0) 收藏
- AndroidManifest.xml配置文件详解-… 分类: Android开发 2014-05-30 10:54 46人阅读 评论(0) 收藏
- android常见错误之“Failed to… 分类: Android开发 2014-05-30 10:54 38人阅读 评论(0) 收藏
- 转:Android App自动化之使用… 分类: Android开发 2014-05-30 10:54 102人阅读 评论(0) 收藏
- Android的Override错误ZZ 分类: Android开发 2014-05-30 10:54 54人阅读 评论(0) 收藏
- 在pc上 运行android 4.2 分类: Android开发 2014-05-30 10:53 53人阅读 评论(0) 收藏
- Android App应用之发布各广告… 分类: Android开发 2014-05-30 10:54 101人阅读 评论(0) 收藏
- [转]Android开发中常用工具类总结-… 分类: Android开发 2014-05-30 10:54 74人阅读 评论(0) 收藏
- Android配置文件,所有权限ZZ 分类: Android开发 2014-05-30 10:54 57人阅读 评论(0) 收藏
- android 测试更新app时 … 分类: Android开发 2014-05-30 10:54 45人阅读 评论(0) 收藏