什么是注册活动时的“点”

我是一个在Android操作系统编程的菜鸟。 我注意到,在我读过的书中,作者在清单中注册其活动时,在活动名称前放置了一个“点”。 我环顾了Android开发者网站,我无法弄清楚为什么我们需要“点”。 “点”实际上是服务器的目的吗? 我需要它吗? 我已经在下面包含了一个例子。 注意“NewActivity”之前的“点”:

<activity android:name=".NewActivity"></activity> 

正如您已经注意到的那样,这一点并不是必须的,但它基本上意味着:活动类位于应用程序的相同包中。 所以,如果你的应用程序包是: com.my.package那么:

  • 。你的.YourActivity意味着你的类在com.my.package里面。
  • YourActivity意味着你的类在com.my.package里面(和上面一样)。
  • .activities.YourActivity意味着你的类在com.my.package.activitites里面。
  • 你甚至可以做一些事情: com.my.package.activities.YourActivity ,当你想要有不同版本的应用程序,并使用Ant来自动更改包的引用时, com.my.package.activities.YourActivity是非常有用的。

http://developer.android.com/guide/topics/manifest/activity-element.html#nm

安卓:名称
实现活动的类的名称,Activity的子类。 属性值应该是完全限定的类名(例如“com.example.project.ExtracurricularActivity”)。 但是,如果名称的第一个字符是一个句点 (例如,“.ExtracurricularActivity”), 则会将其附加到<manifest>指定的包名称

所以给了ApplicationManifest.xml

 <manifest ... package="com.stackoverflow.android.geotask" ...> <application ...> <activity android:name=".view.TaskListListView" ...> ... </application> </manifest> 

那么由于android:name=".view.TaskListListView"有一个前导期,所以它被解释为android:name="com.stackoverflow.android.geotask.view.TaskListListView"

那个小点会把你的package附加到应用程序清单中。

如果你的包名是com.app.demo

 <activity android:name=".HelloWorldActivity"> 

这意味着活动是在演示包内。

你可以用这个replace

 <activity android:name="com.app.demo.HelloWorldActivity">