考点:
- Activity之间的跳转
- 显式意图
- 隐式意图
- Activity中的数据传送
- Activity01.class传到Activity02.class
- 从Activity02.class回传到Activity01.class(数据回传)
一、Activity之间的跳转
Intent intent =new Intent(this , Activity02.class);
startActivity(intent);
//打开浏览器的例子
Button button = (Button) findViewById(R.id.main_btn);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
Intent intent = new Intent();
intent.setAction("andriod.intent.action.VIEW");
intent.setData(Uri.parse("http//:www.baidu.com"));
startActivity()
}
})
二、Activity中的数据传送
1.从Activity01.class传到Activity02.class
Intent intent = new Intent(this ,Activity02.class);
intent.putExtra("extra_data" ,"Hello,Activity02!");
startActivity(intent);
Intent intent = getIntent(); //通过getIntent()方法获得Intent对象
String data = intent.getStringExtra("extra_data"); //getIntExtra()...
3.5的一个例子
public class MainActivity extends AppCompatActivity{
private EditText et_name;
private EditText et_password;
private Button btn;
protected void onCreate(Bundle savedInstanceState/*保存的实例状态*/){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_name = (EditText) findViewById(R.id.et_name);
et_password = (EditText) findViewById(R.id.et_password);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener(){
public onClick(View v){
passData();
}
})
}
public void passData(){
Intent intent = new Intent(this ,ShowActivity.class); //创建Intent对象
intent.putExtra("name",et_name.getText().toString().trim()); //传递参数给Intent
intent.putExtra("password",et_password.getText().toString().trim());
startActivity(intent);
}
}
public class ShowActivity extends AppCompatActivity{
private TextView t_name;
private TextView t_password;
protected onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.Activity_show);
Intent intent = getIntent();
String g_name = intent.getStringExtra("name");
String g_password = intent.getStringExtra("password");
}
}
2.//数据回传//从Activity02.class回传到Activity01.class
startActivityForResult(Intent intent ,int requestCode);//回传数据、启动第2个Activity;请求码用来判断数据来源
setResult(int resultCode ,Intent data); //回传处理结果,处理成功为1,失败为0;向第1个Activity中传递数据
onActivityResult(int requestCode ,int resultCode ,Intent data);//第1个Activity用来获得回传的数据
Intent intent = new intent(this ,Activity02.class);
startActivityForResult(intent,1);
//protected的方法
protected void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 1){
if(resultCode == 1){
String extra = data.getStringExtra("extra");
}
}
}
Intent intent = new Intent();
intent.putExtra("extra","Hello,Activity01!");
setResult(1,intent);