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

目录

  • 一.如何创建多个页面
  • 二.如何进行页面跳转
    • 1.传递参数方式一
    • 2.传递参数方式二(传递多个参数)
  • 三.设置页面自动跳转(用到线程)
  • 四.Activity生命周期

一.如何创建多个页面

一个activity是一个安卓页面,右键src->new Android activity
Android入门(四)——页面跳转_第1张图片
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效果:
Android入门(四)——页面跳转_第2张图片

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效果:
Android入门(四)——页面跳转_第3张图片

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

可能一开始都会想到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张图片 Android入门(四)——页面跳转_第5张图片

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

你可能感兴趣的:(Android,android,安卓,java,移动开发,jsp)