(Android review)显示意图激活与隐式意图激活

2023-04-12


一、基本知识点


1、

label属性:某个Acivity的标题



2、R文件不要引错了,引成Android底层的了




3、intent.setClass(this, Main2Activity.class);


第一个参数:上下文


第二个参数:要激活的组件的字节码文件




4、显示意图激活(明确指定了要激活的组件)


1)intent.setClass(this, Main2Activity.class);


2)intent.setClassName(this, "com.njupt.multiactivity.Main2Activity");
第二个参数:需要打开的组件的全类名


3)intent.setClassName(getPackageName(), "com.njupt.multiactivity.Main2Activity");
getPackageName():获取AndroidManefest中节点下的package属性的值


4)intent.setComponent(new ComponentName(this, Main2Activity.class));


5)Intent intent = new Intent(this,Main2Activity.class);


5、


android:onClick="open"/>

多个控件可以激发同一个事件处理函数,这里激发的open函数




6、隐式意图激活(之前激活浏览器什么的都是这样干的)


1)
            
                //action的name可以随便起
                //这个一定要有,否则会报错.以上是mini配置
                //没有太大的意义,加了这一行也不会有太大影响
                
            
        

在AndroidManifest.xml中配置了action、category、data,在代码中就一定需要进行相应的设置


//指定动作名称
  intent.setAction("cn.itcast.action.main3");
//设置数据
// intent.setData(Uri.parse("itcast:"));
//设置mime_type
//   intent.setType("image/jpeg");//会自动把data清掉,所以这是应该改成
intent.setDataAndType(Uri.parse("itcast:"), "image/jpeg");


7、mimetype的类型可以在tomcat中找(conf/web.xml)中




8、使用隐式意图打开浏览器


Intent intent = new Intent();
     intent.setAction("android.intent.action.VIEW");
     intent.setData(Uri.parse("http://www.baidu.com"));
 startActivity(intent);

二、举例


1、MainActivity



package com.example.multiactivity;

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity {

	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
	}
	
	
	public void open(View view){
		
		int id = view.getId();
	    if(id == R.id.open1){
	    	
	    	/**
	    	 * 以下演示了显示意图激活的5种方式
	    	 */
//	    	Intent intent = new Intent();
//	    	intent.setClass(this, MainActivity2.class);
//	    	intent.setClassName(this, "com.example.multiactivity.MainActivity2");
//	    	System.out.println("---------->" + getPackageName());
//	    	intent.setClassName(getPackageName(), "com.example.multiactivity.MainActivity2");//注意了第二个参数都是全类名
//	    	intent.setComponent(new ComponentName(this, MainActivity2.class));
	    	
	    	Intent intent = new Intent(this, MainActivity2.class);
	    	startActivity(intent);
	    }else if(id == R.id.open2){
	    	Intent intent = new Intent();
	    	intent.setAction("hellointent");
//	    	intent.setData(Uri.parse("zhangzetian:"));
//	    	intent.setType("image/jpeg");
	    	intent.setDataAndType(Uri.parse("zhangzetian:"), "image/jpeg");
	    	
	    	
	    	startActivity(intent);
	    }else if(id == R.id.open3){
	    	Intent intent = new Intent();
	    	intent.setAction(("android.intent.action.VIEW"));
	    	intent.setData(Uri.parse("http://www.baidu.com"));
	    	
	    	startActivity(intent);
	    }
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}




2、MainActivity2



package com.example.multiactivity;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity2 extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		setContentView(R.layout.main2);
	}
}


3、MainActivity3



package com.example.multiactivity;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity3 extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		setContentView(R.layout.main3);
	}
}



4、在显示意图激活和隐式意图激活的过程中,其实AndroidManifest.xml文件是很重要的。故在此附上AndroidManifest.xml的全部代码:






    

    
        
            
                AIN" />

                
            
        
        
        
        
        
        
            
                
                
                
                
            
            
        
    


三、源码下载:



四、效果图



本文仅代表作者观点,版权归原创者所有,如需转载请在文中注明来源及作者名字。

免责声明:本文系转载编辑文章,仅作分享之用。如分享内容、图片侵犯到您的版权或非授权发布,请及时与我们联系进行审核处理或删除,您可以发送材料至邮箱:service@tojoy.com