Android 中使用 ComponentName 类

android中可以使用Intent时 可以用setClass() 还可以使用ComponentName

Java 代码

package com.huawei;


import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Test extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
//组件名称,第一个参数是包名,也是主配置文件Manifest里设置好的包名
第二个是类名,要带上包名

				ComponentName com = new ComponentName("com.huawei", "com.huawei.Test1");
				Intent  intent = new Intent();
//设置部件
				intent.setComponent(com);
			    Test.this.startActivity(intent);
			}
		});
    }
}


经查看源码发现 Intent 的setClass() 方法的实现正是使用ComponentName 类:

public Intent setClass(Context packageContext,Class<?> cls){
   mComponent=new ComponentName(packageContext,cls);
return this;

}

Intent 的 构造方法也是如此:

public Intent(Context packageContext,Class<?> cls){
      mComponent=new ComponentName(packageContext,cls);
}

上面例子中的 setComponent()方法:

public Intent setComponent(ComponentName component){
      mComponent =component;
return this;
}

以上可以看出无论那种方法调用的都是相似的代码;

参考:http://hellorheaven.iteye.com/blog/860193点击打开链接

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值