1、使用显示Intent
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
startActivity(intent);
上述代码的作用是打开活动SecondActivity
2、使用隐式Intent
首先打开AndroidManifest.xml,添加代码:
<activity android:name="com.example.activitytest.SecondActivity" android:label="@string/title_activity_second" > <intent-filter> <action android:name="com.example.activitytest.ACTION_START" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="com.example.activitytest.MY_CATEGORY" /> </intent-filter> </activity>
然后修改FirstActivity中按钮的点击事件:
btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent=new Intent("com.example.activitytest.ACTION_START");
intent.addCategory("com.example.activitytest.MY_CATEGORY");
startActivity(intent); } });
还可以使用隐式Intent,启动其他程序的活动。
Intent intent=new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse("http://www.cnblogs.com/zhouhb/")); //Intent intent=new Intent(Intent.ACTION_DIAL); //intent.setData(Uri.parse("tel:12345"));
3、使用Intent在Activity之间传递数据
3.1 从FirstActivity向SecondActivity传递数据
String s="from first"; Intent intent = new Intent(FirstActivity.this,SecondActivity.class); intent.putExtra("data", s); startActivityForResult(intent, 1);
3.2 SecondActivity接收传递来的数据
Button btn=(Button)findViewById(R.id.button2); Intent intent=getIntent(); String string=intent.getStringExtra("data"); btn.setText(string);
3.3 SecondActivity向FirstActivity返回数据
btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub returnData(); } });
private void returnData() { Intent intent=new Intent(); intent.putExtra("returnData", "from Second"); setResult(RESULT_OK,intent); finish(); }
//如果用户不是通过点击按钮,而是按下Back键回到FirstActivity,则重写 onBackPressed
public void onBackPressed() { // TODO Auto-generated method stub returnData(); }
3.4 在FirstActivity中重写onActivityResult得到SecondActivity返回的数据
protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub switch (requestCode) { case 1: if(resultCode==RESULT_OK){ String string=data.getStringExtra("returnData"); Toast.makeText(this, string, Toast.LENGTH_SHORT).show(); } break;
default: break; } }