What's the "dot" for when registering an Activity
AndroidAndroid ManifestAndroid Problem Overview
I'm kind of a noob at programming for the Android OS. I noticed in the books I have been reading that the authors have placed a "dot" in front of the activity name when registering their activities in the manifest. I've looked around the Android developer site and I can't figure out why we need the "dot". Does the "dot" actually server a purpose? Do I need it? I have included an example below. Notice the "dot" before "NewActivity":
<activity android:name=".NewActivity"></activity>
Android Solutions
Solution 1 - Android
As you have noticed the point is not necessary but it basically means: the activity class lives in the same package of the app. So, if your app package is: com.my.package
then:
.YourActivity
means that your class is insidecom.my.package
.YourActivity
means that your class is insidecom.my.package
(same as above)..activities.YourActivity
means that your class is insidecom.my.package.activitites
.- You can even do something like:
com.my.package.activities.YourActivity
which is useful when you want to have different versions of your app and use Ant to change the references to the package automatically.
Solution 2 - Android
http://developer.android.com/guide/topics/manifest/activity-element.html#nm
> android:name
> The name of the class that implements the activity, a subclass of Activity. The attribute value should be a fully qualified class name (such as, "com.example.project.ExtracurricularActivity"). However, as a shorthand, if the first character of the name is a period (for example, ".ExtracurricularActivity"), it is appended to the package name specified in the <manifest>
.
So given ApplicationManifest.xml
:
<manifest
...
package="com.stackoverflow.android.geotask"
...>
<application ...>
<activity android:name=".view.TaskListListView" ...>
...
</application>
</manifest>
then since android:name=".view.TaskListListView"
has a leading period, so it is interpreted as android:name="com.stackoverflow.android.geotask.view.TaskListListView"
.
Solution 3 - Android
That dot will append your package
in your application manifest.
If your package name is com.app.demo
.
<activity android:name=".HelloWorldActivity">
It means that Activity is lying inside demo package.
You can replace this with
<activity android:name="com.app.demo.HelloWorldActivity">