我正在开发我的第一个android项目..
当我进入项目的Values文件夹时,我看到了3件事。
dimens.xml
strings.xml
styles.xml
当我选择stringx.xml
文件并将其修改为“Hello world!”时。 “我的名字是X”
我启动了Android应用程序,消息将无法显示。
相反,应用程序会启动,我会看到主屏幕。一个时钟,屏幕底部的4个应用程序,你知道,默认。
然后我要做的就是移动strings.xml
文件中的资源元素。
在资源元素中,我有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)
资源向下移动时,换句话说不在顶部,我的控制台只显示消息的第二部分,而不是最后一部分,最终,这是我的应用程序仅显示的时间主屏幕。
[2013-11-05 12:29:34 - AndroidLove] Starting activity com.example.androidlove.HaikuDisplay on device emulator-5554
谢谢你,很抱歉这篇长篇文章。
编辑:添加代码..
这是来自strings.xml
`
<string name="app_name">AndroidLove</string>
<string name="action_settings">Settings</string><string name="hello_world">Hello, HaikuDisplay!</string>
`
还有两个包
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;
}
}
和第二个包
.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次,它都正确启动。 / p>
我认为这是因为我不得不等待更长时间才能加载......
所以我为浪费任何人的时间道歉...当然,如果有人愿意添加任何东西,我会读它。
我现在需要帮助理解的是,为什么有两个包?为什么他们如此相似。似乎向导创建了两个包,但我不确定原因。
我知道.com.example。软件包用于在Android市场上识别应用程序,但据我所知,这就是。