考点:
- 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()); //传递参数给Intentintent.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);
