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

时间:2011-01-28 23:48:25

标签: android android-manifest

我是Android OS编程的小伙子。我在书中注意到,当我在清单中注册活动时,作者在活动名称前面放置了一个“点”。我查看了Android开发者网站,我无法弄清楚为什么我们需要“点”。 “点”实际上是服务器的目的吗?我需要它吗?我在下面列举了一个例子。注意“NewActivity”之前的“点”:

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

3 个答案:

答案 0 :(得分:42)

正如您已经注意到这一点并非必要,但它基本上意味着:活动类位于应用程序的同一个包中。因此,如果您的应用包是:com.my.package,那么:

  • .YourActivity表示您的班级位于com.my.package
  • YourActivity表示您的班级位于com.my.package内(与上述相同)。
  • .activities.YourActivity表示您的班级位于com.my.package.activitites
  • 您甚至可以执行以下操作:com.my.package.activities.YourActivity,当您希望拥有不同版本的应用并使用Ant自动更改对包的引用时,这非常有用。

答案 1 :(得分:28)

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"

答案 2 :(得分:2)

该点会将package附加到您的应用清单中。

如果您的包裹名称为com.app.demo

<activity android:name=".HelloWorldActivity">

这意味着Activity位于演示包中。

您可以将其替换为

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