0

我正在做我的第一个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 市场上识别应用程序,但据我所知,这就是。

4

0 回答 0