Java 什么是initClickListener()、ComponentName、class.getPackage()?

Java 什么是initClickListener()、ComponentName、class.getPackage()?,java,android,Java,Android,我是一个android新手,对java也不是很精通。我试图理解MobiStego的源代码 因此,以下是我未能完全理解的项目代码的一部分 请帮忙 private void initClickListner() { Button buttonEncode = (Button) findViewById(R.id.ButtonEncode); buttonEncode.setOnClickListener(new Button.OnClickListener()

我是一个android新手,对java也不是很精通。我试图理解MobiStego的源代码

因此,以下是我未能完全理解的项目代码的一部分

请帮忙

private void initClickListner()
    {
        Button buttonEncode = (Button) findViewById(R.id.ButtonEncode);
        buttonEncode.setOnClickListener(new Button.OnClickListener()
        {
            public void onClick(View v) {

                 Intent intent = new Intent();

                  intent.setComponent(new ComponentName(EncodeActivity.class.getPackage().getName(),
                          EncodeActivity.class.getCanonicalName()));
                  startActivity(intent);
            }
        }
        );
1-initClickListner()是一个自己创建的方法。用户方法。喜欢

公共函数(){ ..... ..... }


2-setcomponent和class.getpackage是一种意图组件。我想你知道安卓系统的意图机制。此意图类型适用于应用程序中的不同包名称。例如,您有com.axample.yourappname和com.example.yourappname2包。此意图,不同包活动的交叉意图。若你们想从第一个包的活动调用第二个包的活动,你们可以调用上面的函数

我只想扩展MehmetF的答案。正如他所说,
initClickListner()
只是一个用户定义的方法名,没有什么特别之处。
ComponentName
充当特定应用程序组件的
标识符
,该组件可以是
活动
服务

class.getPackage().getName()
用于获取前面指定类名的包名。
这两个链接还将帮助您了解以下内容:

编辑:
class.getCanonicalName()
是在导入语句中使用的名称,唯一标识类。嗯,我认为你需要看到这些差异才能清楚地理解


非常感谢,但请告诉我如何计算我的android项目中的软件包数量,顺便说一句,getCanonicalName这个术语是什么意思……?默认情况下,你的应用程序中有1个软件包。在你的项目下,你必须看到棕色的包裹。这是你的包裹。如果您在eclipse中右键单击您的项目并添加新的包,您可以看到您的第二个包。getCanonicalName;ClassDemo c=新的ClassDemo();类cls=c.getClass();//如果基础类存在System.out.println(“class=“+cls.getCanonicalName()”),则返回该类的规范名称;为apply dude标记这个问题。很高兴这对你有帮助。如果你认为这解决了你的问题,那么将它标记为答案,这样它也可以帮助其他人。