#第一行代码小结
布局相关
1:定义一个id @+id/id_name
引用一个id @id/id_name
2:
<activity-alias
android:name="com.android.camera.CameraLauncher"
android:icon="@mipmap/ic_launcher_camera"
android:label="@string/snapcam_app_name"
android:launchMode="singleTop"
android:targetActivity="com.android.camera.CameraActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
这两句代码,说明点击桌面应用图标时即打开这个activity
android.intent.category.DEFAULT 是默认的category,Mainfest.xml文件中自动加入
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(intent);
<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>
参考链接: 默认category使用
3:Intent 的使用
3.1 显示Intent
3.2 隐式Intent
3.3 向下一个活动传递数据
3.4 返回数据给上一个活动
显示Intent:
FirstActivity.java代码中:
FirstActivity.this 作为上下文,SecondActivity.class作为目标活动
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(intent)
隐式Intent:
Intent中只能指定一个action,但可以指定多个category
<category android:name="android.intent.category.DEFAULT" /> 系统默认加入的
Mainfest.xml中
<activity
android:name=".SecondActivity"
android:launchMode="singleInstance">
<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.java中
Intent intent =new Intent("com.example.activitytest.ACTION_START");
intent.addCategory("com.example.activitytest.MY_CATEGORY");
startActivity(intent);
向下一个活动传递数据
FirstActivity.java中
String data="hello ";
Intent intent = new Intent(context, SecondActivity.class);
intent.putExtra("key01", data1)
startActivity(intent)
SecondActivity.java中
Intent intent=getIntent();
String data=intent.getStringExtra("key01");
这样就把数据data1从FirstActivity传到了SecondActivity中
返回数据给上一个活动
FirstActivity.java中
public void onClick(View v){
Intent intent =new Intent(FirstActivity.this,SecondActivity.class);
startActivityForResult(intent,1);//(Intent intent ,requestCode)
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 1:
if (resultCode == RESULT_OK) {
String returnedData = data.getStringExtra(“key01”);
Log.d(“FirstActivity”, returnedData);
}
break;
default:
}
}
SecondActivity.java中
Intent intent =new Intent();
intent.putExtra(“key01”,“value01”);
setResult(RESULT_OK,intent);//(int resultCode,Intent data)
finish();
流程图如下: