What's the “dot” for when registering an Activity

前端 未结 3 1397
温柔的废话
温柔的废话 2020-11-29 04:24

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

相关标签:
3条回答
  • 2020-11-29 04:50

    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">
    
    0 讨论(0)
  • 2020-11-29 04:53

    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".

    0 讨论(0)
  • 2020-11-29 05:04

    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 inside com.my.package.
    • YourActivity means that your class is inside com.my.package (same as above).
    • .activities.YourActivity means that your class is inside com.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.
    0 讨论(0)
提交回复
热议问题