圖片.png
一牍鞠、顯式意圖和隱式意圖
圖片.png
1.1 顯式
圖片.png
package com.example.jony.appdemo1;
import android.content.ComponentName;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private Button btn_one;
private Button btn_two;
private Button btn_three;
private Button btn_four;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_one = (Button) findViewById(R.id.btn_one);
btn_two = (Button) findViewById(R.id.btn_two);
btn_three = (Button) findViewById(R.id.btn_three);
btn_four = (Button) findViewById(R.id.btn_four);
btn_one.setOnClickListener(this);
btn_two.setOnClickListener(this);
btn_three.setOnClickListener(this);
btn_four.setOnClickListener(this);
// btn_one.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// System.out.println("點擊按鈕1");
// Intent intent = new Intent();
// intent.setClass(MainActivity.this, Activity1.class);
// startActivity(intent);
// }
// });
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.btn_one:
Intent intent1 = new Intent();
intent1.setClass(this, Activity1.class);
startActivity(intent1);
break;
case R.id.btn_two:
Intent intent2 = new Intent();
intent2.setClassName(this, "com.example.jony.appdemo1.Activity1");
startActivity(intent2);
break;
case R.id.btn_three:
Intent intent3 = new Intent();
//可以打開其他應用的Activity
intent3.setClassName("com.example.jony.appdemo1", "com.example.jony.appdemo1.Activity1");
startActivity(intent3);
break;
case R.id.btn_four:
Intent intent4 = new Intent();
intent4.setComponent(new ComponentName(this, Activity1.class));
startActivity(intent4);
break;
default:
break;
}
}
}
1.2 隱式
作用:可用于分享給與自身配置了同樣的intent-filter的應用程序
<activity android:name=".Activity2">
<intent-filter>
<action android:name="com.appdemo1.activity2" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
case R.id.btn_five:
Intent intent5 = new Intent();
intent5.setAction("com.appdemo1.activity2");
intent5.addCategory(Intent.CATEGORY_DEFAULT);
startActivity(intent5);
break;
二礁扮、 Intent Filter
startActivity(intent5)
-->將intent傳給所有的Activity組件
-->s首先排除沒有配置Intent Filter的Activity組件
-->過濾器對Intent Filter的內(nèi)容進行匹配(所有的程序)
-->如果沒有匹配的則報錯,匹配的顯示国瓮,讓用戶選擇
圖片.png