私はAndroid OSのプログラミングに慣れていないようです。読んでいる本の中で、著者が登録時にアクティビティ名の前に「ドット」を付けていることに気づきました。マニフェストのアクティビティ。Android開発者サイトを見回しましたが、なぜ「ドット」が必要なのかわかりません。「ドット」は実際に目的を果たしているのでしょうか?以下に例を示します。「NewActivity」の前の「ドット」に注意してください。
<activity Android:name=".NewActivity"></activity>
お気づきのとおり、ポイントは必要ありませんが、基本的には、アクティビティクラスがアプリの同じパッケージに存在することを意味します。したがって、アプリパッケージが次の場合:com.my.package
then:
.YourActivity
は、クラスがcom.my.package
内にあることを意味します。YourActivity
は、クラスがcom.my.package
内にあることを意味します(上記と同じ)。.activities.YourActivity
は、クラスがcom.my.package.activitites
内にあることを意味します。com.my.package.activities.YourActivity
のようなこともできます。これは、アプリのバージョンを変えて、Antを使用してパッケージへの参照を自動的に変更する場合に便利です。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"
として解釈されます。
そのドットは、アプリケーションマニフェストにpackage
を追加します。
パッケージ名がcom.app.demo
の場合。
<activity Android:name=".HelloWorldActivity">
これは、アクティビティがデモパッケージ内にあることを意味します。
これを次のように置き換えることができます
<activity Android:name="com.app.demo.HelloWorldActivity">