Android入门(四)——页面跳转

一.如何创建多个页面

一个activity是一个安卓页面,右键src->new Android activity

new后:

  • src添加了新页面的Java代码
  • res/layout添加了新页面的xml代码
  • AndroidManifest.xml添加了新页面的标签(含有intent-filter属性的是app启动后的第一个页面)

二.如何进行页面跳转

  1. xml中设置onClick属性
  2. Java代码中通过Intent类实现相应业务
    public void goSecond(View v){
    	//设置跳转的页面
    	Intent intent = new Intent(this, SecondActivity.class);//this为当前所在页面FirstActivity
    	//跳转
    	startActivity(intent);
    }

1.传递参数方式一

FirstActivity.java:

    public void goSecond(View v){
    	//设置跳转的页面
    	Intent intent = new Intent(this, SecondActivity.class);
    	//设置参数
    	intent.putExtra("Mydata", "xybhenshuai");//键:“Mydata”,值:“xybhenshuai”
    	//跳转
    	startActivity(intent);
    }

SecondActivity.java:

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_second);
		
		Intent i = this.getIntent();
		String data = i.getStringExtra("Mydata");
		Toast.makeText(this, "第二个页面收到的数据:"+data, 0).show();
	}

点击第一个页面button效果:

2.传递参数方式二(传递多个参数)

FirstActivity.java:

    public void goSecond(View v){
    	//设置跳转的页面
    	Intent intent = new Intent(this, SecondActivity.class);
    	//设置参数
    	Bundle bundle = new Bundle();
    	bundle.putString("Data1", "xybhenshuai");
    	bundle.putInt("Data2", 250);
    	intent.putExtras(bundle);
    	//跳转
    	startActivity(intent);
    }

SecondActivity.java:

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_second);
		
		Intent i = this.getIntent();
		Bundle bundle = i.getExtras();
		String data1 = bundle.getString("Data1");
		int data2 = bundle.getInt("Data2");
		Toast.makeText(this, "第二个页面收到的数据:"+data1+data2, 0).show();
	}

点击第一个页面button效果:

三.设置页面自动跳转(用到线程)

可能一开始都会想到sleep一伙,然后跳转,但注意:
onCreate是UI线程,不能直接在UI线程中sleep,否则UI线程暂停刷新,显示不出页面,需另起一个线程。
Demo:

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Thread t = new Thread(new Runnable() {//新线程	
			@Override
			public void run() {
				// TODO Auto-generated method stub
				try {
					Thread.sleep(3000);//Java线程代码都要try捕获异常
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
				Intent intent = new Intent(MainActivity.this, SecondActivity.class);
		    	startActivity(intent);		
			}
		});
        t.start();//启动线程
    }

启动后显示FirstActivity,3秒后自动跳转到SecondActivity

四.Activity生命周期

Android入门(三)——按键响应(点我!)

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值