私は最初のアンドロイドプロジェクトに取り組んでいます..
プロジェクトの Values フォルダーに移動すると、3 つのものが表示されます。
dimens.xml
strings.xml
styles.xml
ファイルを選択してstringx.xml
変更すると、「Hello world!」と言うことができます。「私の名前はX」に
Androidアプリを起動しても、メッセージは表示されません。
代わりに、アプリが起動し、ホーム画面が表示されます。時計、画面下部の 4 つのアプリ、デフォルトです。
私がしなければならないことは、strings.xml
ファイル内の Resource 要素を移動することです。
私が持っているリソース要素app_name(String)
action_settings(String)
とhello_world(String)
リソース内。これらは削除したり、上または下に移動したり、最後に新しいものを追加したりできます..
hello_world(String)
私の質問は、リソース要素をリストの最初に移動すると、アプリがやりたいことだけを実行するのはなぜですか (「私の名前は X です」と表示されます) 。
このリソース要素が一番上にある場合 (そしてアプリが必要なことを実行している場合)、コンソールにこのメッセージが表示されます..
[2013-11-05 12:29:34 - AndroidLove] Starting activity com.example.androidlove.HaikuDisplay on device emulator-5554
[2013-11-05 12:29:38 - AndroidLove] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.androidlove/.HaikuDisplay
最後に。
ただし、hello_world(String)
リソースが下に移動した場合、つまり上部に移動した場合、コンソールにはメッセージの 2 番目の部分のみが表示され、最後には表示されず、最終的にはアプリがホーム画面のみを表示するときです。
[2013-11-05 12:29:34 - AndroidLove] Starting activity com.example.androidlove.HaikuDisplay on device emulator-5554
ありがとうございます。長い投稿で申し訳ありません。
編集:コードを追加..
これはxmlコードですstrings.xml
`
<string name="app_name">AndroidLove</string>
<string name="action_settings">Settings</string><string name="hello_world">Hello, HaikuDisplay!</string>
`
2つのパッケージもあります
次のクラスを含む android.love
MainActivity.java
このクラスのコードは
`package android.love;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
そして2つ目のパッケージ
.com.example.androidlove
というクラスでHaikuDisplay.java
このクラスのコードは
package com.example.androidlove;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class HaikuDisplay extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_haiku_display);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.haiku_display, menu);
return true;
}
}
これをもう一度テストしたことに注意 してください(テストした最後の10回ほど失敗した理由はわかりません)、文字列リソースがどの順序であったとしても機能しました.2番目、3番目、または1番目のいずれであっても、適切に起動しました.
物事がロードされるまでもう少し待たなければならなかったという事実が原因だったと思います..
だから私は誰かの時間を無駄にして申し訳ありません.. もちろん、誰かが自由に何かを追加したい場合は、私はそれを読みます.
今理解する必要があるのは、なぜ 2 つのパッケージがあるのかということです。そして、なぜ彼らはとても似ています。ウィザードが両方のパッケージを作成したようですが、その理由はわかりません。
私は.com.exampleを知っています。package は、アプリが Android マーケットにあるときにアプリを識別するために使用されますが、それは私の知る限りです。