Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android顯式意圖、隱式意圖、意圖過濾器(intent-filter)、意圖間傳值

Android顯式意圖、隱式意圖、意圖過濾器(intent-filter)、意圖間傳值

編輯:關於Android編程

intent主要包括隱式意圖和顯式意圖。顯式意圖通常主要是啟動本應用中的Activity之間的數據,而隱式意圖則常見於啟動系統中的某些特定的動作,比如打電話,發短信,或者是跨應用的Activity啟動(如在QQ點擊鏈接地址啟動一個浏覽器Activity)。

顯式意圖:調用Intent.setComponent()、Intent.setClass()、Intent.setClassName()方法明確指定了組件名的Intent為顯式意圖,顯式意圖明確指定了Intent應該傳遞給哪個組件。
隱式意圖:沒有明確指定組件名的Intent為隱式意圖。 Android系統會根據隱式意圖中設置的動作(action)、類別(category)、數據(URI和數據類型)找到最合適的組件來處理這個意圖。

MainActivity.java
package cn.android.intent;

import java.util.Date;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.TextView;

public class NewActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.other);
		Intent intent = getIntent();
		//Log.i("NewActivity", intent.getData().getPath());
		String title = intent.getStringExtra("title");
		double since = intent.getDoubleExtra("since", 1995.5);
		TextView textView = (TextView) this.findViewById(R.id.textView);
		textView.setText("語言:" + title + ",發布時間:" + since + "。");
	}
	
	public void closeActivity(View v) {
		Intent intent = new Intent();
		intent.putExtra("result", new Date().toString());
		setResult(501, intent);
		this.finish();
	}
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
	    if (keyCode == KeyEvent.KEYCODE_BACK) {
	    	closeActivity(null);
	    }
	    return true;
	}
}

NewActivity.java
package cn.android.intent;

import java.util.Date;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.TextView;

public class NewActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.other);
		Intent intent = getIntent();
		//Log.i("NewActivity", intent.getData().getPath());
		String title = intent.getStringExtra("title");
		double since = intent.getDoubleExtra("since", 1995.5);
		TextView textView = (TextView) this.findViewById(R.id.textView);
		textView.setText("語言:" + title + ",發布時間:" + since + "。");
	}
	
	public void closeActivity(View v) {
		Intent intent = new Intent();
		intent.putExtra("result", new Date().toString());
		setResult(501, intent);
		this.finish();
	}
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
	    if (keyCode == KeyEvent.KEYCODE_BACK) {
	    	closeActivity(null);
	    }
	    return true;
	}
}

main.xml


    
    
	    

other.xml


	
	    
	    

AndroidManifest.xml



    

    
        
            
                

                
            
        
        
            
                
                
                
                
                
                
                
            
        
    


strings.xml


    Hello World, MainActivity!
    New Activity!
    Android意圖
	打開顯示意圖
	打開隱式意圖
	關閉窗口


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved