Android之意图的功能:激活组件,携带数据

逻辑思想:

        如果一个Activity想启动另一个Activity,则必须使用意图对象Intent,因为意图(Intent)中提供了激活另一个Activity并且携带数据的方法,那么又有人迷惑了,意图是什么?意图指的是你想干嘛。

意图的功能是指:

A:激活组件:

    主要使用的方式有:

            1:使用实例化意图对象同时指定要启动的启动源和启动目标

                即:Intent intent = new Intent(this,DetailActivity.class);

            2:使用意图对象中的setClass()方法

                即:Intent intent = new Intent();

                            intent.setClass(this,DetailActivity.class);

            3:使用意图对象中的setClassName()方法

                即:Intent intent = new Intent();

                            intent.setClassName(context,className);或者是:intent.setClassName(packageName,className);

            4:intent.setComponent(componentName)

                即:ComponentName componentName = new ComponentName(getPackageName(),DetailActivity.class.getName());

                最后不要忘记把组件名和意图对象进行绑定

                即:intent.setComponent(componentName);

 

B:携带数据:

    主要使用的方式有:

            1:intent.putExtra(String,对应的类型):对应的类型有:Java八大基本数据类型及对应的数组、Serializable及对应的数组、parcelable及对应的数组

            2:intent.putExtras(bundle)

            即:封装到Bundle中

                Bundle bundle = new Bundle();

                bundle.putString("name","小雨”);

                bundle.putInt("age",20);

                bundle.putBoolean("isMarried",false);

                intent.putExtras(bundle);

            3:intent.putExtra(String,Bundle);

                即:Bundle bundle= new Bundle();

                        bundle.putString("name","小雨”);

                        ......

                         intent.putExtra("bundle",bundle);

            4:怎样传递自定义对象:让自定义类实现Serializable接口

                    然后使用:intent.putExtra("p1",new Person("小雨",20));


那么以上就是一个Activity启动另一个Activity所使用的所有方式了,希望对你有帮助

你可能感兴趣的:(Android)