一.如何创建多个页面
一个activity是一个安卓页面,右键src->new Android activity
new后:
- src添加了新页面的Java代码
- res/layout添加了新页面的xml代码
- AndroidManifest.xml添加了新页面的标签(含有intent-filter属性的是app启动后的第一个页面)
二.如何进行页面跳转
- xml中设置onClick属性
- 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