我正在做我的第一个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
谢谢你,很抱歉这么长的帖子。
编辑:添加代码..
这是来自的 xml 代码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 次,它都能正常启动.
我认为这是由于我不得不等待更长的时间才能加载东西..
因此,我为浪费任何人的时间而道歉。当然,如果有人想随意添加任何内容,我会阅读它。
我现在需要帮助理解的是,为什么有两个包?以及为什么它们如此相似。似乎向导创建了两个包,但我不知道为什么。
我知道.com.example。包用于在 android 市场上识别应用程序,但据我所知,这就是。