添加一个页面
- 在src上面右键,new一个Other
- 选择Android,Android Activity
- 选择Blank Activity
- 更改Activity Name(类的名字),Layout Name自动更改(布局名字),点击Finish完成
页面跳转
- 在java文件中,Intent类 ,new一个对象,设置要跳转的页面构造方法
Intent intent = new Intent(this, SecondActivity.class);
// 第一个参数当前页面,第二个参数跳转到哪个页面
- 跳转
startActivity(intent);
package com.example.ymsz.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void goSecond(View v){
// Intent 设置要跳转的页面
Intent intent = new Intent(this, SencondActivity.class);
//跳转
startActivity(intent);
}
}
传递参数方法一
Intent类的方法putExtra
putExtra,参数1键值队(接收的时候需要这个参数),参数2传递的信息(可以是很多种数据类型)
intent.putExtra("MyData", "法外狂徒");
package com.example.ymsz.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void goSecond(View v){
// Intent 设置要跳转的页面
Intent intent = new Intent(this, SencondActivity.class);
intent.putExtra("MyData", "法外狂徒");
//跳转
startActivity(intent);
}
}
接收
- 使用Intent
Intent i = this.getIntent();
- 用一个数据类型变量,把键里面的值获取出来
data = i.getStringExtra("Mydata");
- 把获取的数据显示在页面
Toast.makeText(this, "第二个页面收到数据," + data, 0).show();
具体代码:
package com.example.ymsz.activity;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;
public class SencondActivity extends Activity {
private String data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sencond);
Intent i = this.getIntent();
data = i.getStringExtra("MyData");
Toast.makeText(this, "第二个页面收到数据," + data, 0).show();
}
public void goThird(View v){
// Intent 设置要跳转的页面
Intent intent = new Intent(this, ThirdActivity.class);
intent.putExtra("MyData", data);
//跳转
startActivity(intent);
}
}
传递参数方法二
传递参数类型多了,就需要用这种方法
- 使用Bundle类,可以传递很多参数
Intent intent = new Intent(this, SencondActivity.class);
Bundle bundle = new Bundle();
bundle.putString("MyData", "法外狂徒");
bundle.putInt("ID", 100);
intent.putExtras(bundle);
- 接收方法和第一种一样
Intent i = this.getIntent();
Bundle b = i.getExtras();
String data = b.getString("MyData");
int data2 = b.getInt("ID");
Toast.makeText(this, "第二个页面收到数据," + data + data2, 0).show();
页面一
package com.example.ymsz.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void goSecond(View v){
// Intent 设置要跳转的页面
Intent intent = new Intent(this, SencondActivity.class);
Bundle bundle = new Bundle();
bundle.putString("MyData", "法外狂徒");
bundle.putInt("ID", 100);
intent.putExtras(bundle);
//intent.putExtra("MyData", "法外狂徒");
//跳转
startActivity(intent);
}
}
页面二
package com.example.ymsz.activity;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;
public class SencondActivity extends Activity {
private String data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sencond);
Intent i = this.getIntent();
// data = i.getStringExtra("MyData");
Bundle b = i.getExtras();
String data = b.getString("MyData");
int data2 = b.getInt("ID");
Toast.makeText(this, "第二个页面收到数据," + data + data2, 0).show();
}
public void goThird(View v){
// Intent 设置要跳转的页面
Intent intent = new Intent(this, ThirdActivity.class);
intent.putExtra("MyData", data);
//跳转
startActivity(intent);
}
}