Android Studio 使用Intent

时间:2022-09-14 22:54:33

1.显式Intent

  Intent intent=new Intent(yzj.this,MainActivity.class);//当前活动的实例,要去的实例
                startActivity(intent);//注入下一个活动

2.隐式Intent

    Intent intent=new Intent("A");
                intent.addCategory("B"); 
 <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="A" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="B" />
            </intent-filter>
        </activity>

代码要添加筛选 确认那个活动可以进那个活动

隐式的调用系统浏览器

 Intent intent=new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.parse("http://www.baidu.com"));

隐式的调用电话簿

 Intent intent=new Intent(Intent.ACTION_DIAL);//内置对象
                intent.setData(Uri.parse("TEL:10000"));

向下一层传递接收数据

   intent.putExtra("h","123");//向下一层传递数据
    Intent te=getIntent();//获取传入的值 object 类型 在首次加载地方写入
                String data=intent.getStringExtra("h");//获取键值 感觉类型用不同的类型去接受

返回数据给上一次 要在 上一层 重写onActivityResuly()

在返回是销毁页面

   startActivityForResult(intent,1); 返回对象 标识位1
  @Override
    public void onBackPressed() {
             Intent intent=new Intent();
             intent.putExtra("","");//存入值
             setResult(RESULT_OK,intent);
             finish();//销毁
    }
 @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {

        if (requestCode==1)
        {
            if (resultCode==RESULT_OK)
            {
                String resturn=data.getStringExtra("123"); //获取值
            }
        }
    }