tip8——intent的7個屬性

1.顯式意圖,Component屬性

            //通過組件名稱直接查找組件(通過component屬性
                Intent intent1 = new Intent();
                ComponentName componentName = new ComponentName(this,Main9Activity.class);
                intent1.setComponent(componentName);

                //第二種寫法
//                Intent intent = new Intent(this,Main9Activity.class);

                //第三種寫法
//              Intent intent = new Intent();  
//              intent.setClass(HelloActivity.this, OtherActivity.class);  

                startActivity(intent1);

2.Action屬性

            //使用間接法(通過action屬性
            //在配置文件中,在未有分類時,category必須要有默認的
                Intent intent2 = new Intent();
                intent2.setAction("com.example.john.action");
                startActivity(intent2);

在配置文件中:
category的默認屬性必須要有,不然會報錯

<intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>

3.Category屬性


            //使用間接法,(通過action屬性和category屬性
            //雖然這裏自己添加了category,但是配置文件中默認的category必須要寫上,不然還是會報錯
                Intent intent3 = new Intent();
                intent3.setAction("com.example.john.action");
                intent3.addCategory("com.example.john.category");
                startActivity(intent3);

在配置文件中:

<intent-filter>
                <action android:name="com.example.john.action" />

                <category android:name="com.example.john.category" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>

4.data屬性


            //data屬性,通常與action一起使用(是最常見的使用
                Intent intent4 = new Intent();
                intent4.setAction("android.intent.action.VIEW");
                Uri data = Uri.parse("http://www.baidu.com");
                intent4.setData(data);
                startActivity(intent4);

在配置文件中:

<intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />

                <data
                    android:host="www.baidu.com"
                    android:scheme="http" />
            </intent-filter>

5.type屬性


            //type屬性,表示數據的類型
            //setData()會把type設爲空,setType()會把data設置爲空
                Intent intent5 = new Intent();
                intent5.setAction("android.intent.action.VIEW");
                Uri data2 = Uri.parse("http://www.baidu.com");
                //setData()和setType()不能一起用,要同時設置的話就要用setDatatAndType()來設置Data的type
                intent5.setDataAndType(data2,"text/html");
                startActivity(intent5);

在配置文件中:

<intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />

                <data
                    android:host="www.baidu.com"
                    android:mimeType="text/html"
                    android:scheme="http" />
            </intent-filter>

6.Extras屬性


            //跳轉頁面時的數據存儲
//                Intent intent = new Intent(this,MainActivityB.class);

//                Bundle bundle = new Bundle();
//                String s = et_text.getText().toString();
//                bundle.putString("string",s);
//                //把Bundle存入Intent
//                intent.putExtra("data",bundle);

//                startActivity(intent);

7.Flag屬性

            //Flag屬性,常用的有4個
            //FLAG_ACTIVITY_CLEAR_TOP
            //FLAG_ACTIVITY_NEW_TASK
            //FLAG_ACTIVITY_NO_HISTORY
            //FLAG_ACTIVITY_SINGLE_TOP
                Intent intent7 = new Intent(this,Main9Activity.class);
                intent7.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent7);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章