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