web-dev-qa-db-ja.com

アクティビティを登録するときの「ドット」とは何ですか

私はAndroid OSのプログラミングに慣れていないようです。読んでいる本の中で、著者が登録時にアクティビティ名の前に「ドット」を付けていることに気づきました。マニフェストのアクティビティ。Android開発者サイトを見回しましたが、なぜ「ドット」が必要なのかわかりません。「ドット」は実際に目的を果たしているのでしょうか?以下に例を示します。「NewActivity」の前の「ドット」に注意してください。

<activity Android:name=".NewActivity"></activity>
54
Cavachon

お気づきのとおり、ポイントは必要ありませんが、基本的には、アクティビティクラスがアプリの同じパッケージに存在することを意味します。したがって、アプリパッケージが次の場合:com.my.package then:

  • .YourActivityは、クラスがcom.my.package内にあることを意味します。
  • YourActivityは、クラスがcom.my.package内にあることを意味します(上記と同じ)。
  • .activities.YourActivityは、クラスがcom.my.package.activitites内にあることを意味します。
  • com.my.package.activities.YourActivityのようなこともできます。これは、アプリのバージョンを変えて、Antを使用してパッケージへの参照を自動的に変更する場合に便利です。
42
Cristian

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

Android:name
アクティビティを実装するクラスの名前、アクティビティのサブクラス。属性値は、完全修飾クラス名( "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"として解釈されます。

28
Bert F

そのドットは、アプリケーションマニフェストにpackageを追加します。

パッケージ名がcom.app.demoの場合。

<activity Android:name=".HelloWorldActivity">

これは、アクティビティがデモパッケージ内にあることを意味します。

これを次のように置き換えることができます

<activity Android:name="com.app.demo.HelloWorldActivity">
3
Gevaria Purva