Android 第一行代码

#第一行代码小结

布局相关

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();

流程图如下:

FirstActivity SecondActivity StartActivityForResult()启动SecondActivity finish()方法结束后,返回resultCode即RESULT_OK onActivityResult()被回调 根据StartActivityForResult()中的请求码**requestCode** 根据setResult()中的结果码**resultCode** 即完成了数据从SecondActivity向FirstActivity的传递 FirstActivity SecondActivity
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值