美文网首页
activity之间跳转

activity之间跳转

作者: yanghanbin_it | 来源:发表于2017-06-08 15:00 被阅读0次

    传递数据

    • 第一个Activity
       /**
        * 隐式跳转至第二个activity
        * 
        * @param v
        */
       public void click4(View v) {
           // 方式一可行 同在一个intent-filter下 
           Intent intent = new Intent();
           intent.setAction("com.example.activeswitch.second");
           intent.setDataAndType(Uri.parse("hello:123"), "text/username");
           startActivity(intent);
       }  
    
    • 第二个Activity
    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_second);
            Intent intent = getIntent();
            Uri uri = intent.getData(); // hello:123
            String type = intent.getType(); //  text/username
        }  
    

    // 第一个Activity
    public void click7(View v) {
            Intent intent = new Intent();
            intent.setAction("com.example.activeswitch.second");
            // 方式一
            intent.putExtra("username", "hello world");
            intent.putExtra("password", "android");
            // 方式二
            Bundle bundle = new Bundle();
            bundle.putString("username", "hello android");
            bundle.putString("password", "123");
            intent.putExtras(bundle);
            startActivity(intent);
        }  
    
    //第二个Activity
    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_second);
            Intent intent = getIntent();
            
            //方式一
            /*String username = intent.getStringExtra("username");
            String password = intent.getStringExtra("password");*/
            
            
            //方式二
            Bundle bundle = intent.getExtras();
            String username = bundle.getString("username");
            String password = bundle.getString("password");
            
            System.out.println("username:" + username + " password:" + password);
        }  
    

    应用场景

    • 显示意图: 启动同一个应用中Activity
    • 隐式意图: 启动不在同一个应用中的Activity
    • 在启动效率中,隐式效率远远低于显示意图
    • 如果系统中有多个Activity与意图设置的action匹配,那么在启动Activity时,会弹出一个对话框,里面包含所有匹配的Activity

    相关文章

      网友评论

          本文标题:activity之间跳转

          本文链接:https://www.haomeiwen.com/subject/gfftqxtx.html