我刚刚安装了SDK
和ADT Eclipse plugin
。我想做的是一个简单的“Hello,World”计划。我正在使用2.2 (8) API
。这是我的代码:
package com.example.hello;
import android.app.Activity;
import android.widget.TextView;
import android.os.Bundle;
public class HelloWorld extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView txt = new TextView(this);
txt.setText("Hello, Android");
setContentView(txt);
}
}
我的Eclipse
控制台:
[2010-09-02 13:27:32 - HelloWorld] ------------------------------
[2010-09-02 13:27:32 - HelloWorld] Android Launch!
[2010-09-02 13:27:32 - HelloWorld] adb is running normally.
[2010-09-02 13:27:32 - HelloWorld] Performing com.example.hello.HelloWorld activity launch
[2010-09-02 13:27:32 - HelloWorld] Automatic Target Mode: Preferred AVD 'Android' is not available. Launching new emulator.
[2010-09-02 13:27:32 - HelloWorld] Launching a new emulator with Virtual Device 'Android'
[2010-09-02 13:28:12 - HelloWorld] New emulator found: emulator-5554
[2010-09-02 13:28:12 - HelloWorld] Waiting for HOME ('android.process.acore') to be launched...
在我的模拟器(5554:Android)上,没有显示任何内容,只有一个空白的屏幕,带有很酷的“Android”印记。我从根本上缺少什么?
答案 0 :(得分:3)
是的,模拟器需要加载时间,但如前所述,您的代码中也存在问题。
致电时
setContentView(R.layout.main);
你实际上是在说“去获取我所做的'main'的XML布局并显示它”
然后你把它扔进去:
TextView txt = new TextView(this);
txt.setText("Hello, Android");
setContentView(txt);
在该代码中,您说“创建一个新的textview,设置其文本,然后显示我刚刚制作的新布局”
这不是真正的破坏性错误,只是不理想。通常,您希望在XML中提前创建布局或动态创建布局,但不能同时创建两者。绘制新视图是普通应用程序执行和执行两次操作最耗费CPU的操作之一,这只是浪费。
如果您不熟悉我们所讨论的XML布局,请在Eclipse中打开您的项目并导航到YourProjectName / res / layout / main.xml。
最后一点,构建2.2的目标平台可能并不明智,除非你确实需要2.2 API中的某些东西。您的“Hello,world”应用程序仅使用TextView,并且这些应用程序永远存在。构建2.2意味着只有2.2或更高版本的用户才能使用您的应用程序,目前这种应用程序排除了很多人(就像所有Droid Eris用户一样)。建立1.5是一个非常安全的赌注,仍然可以让你玩很多,同时最大化你的目标受众。
答案 1 :(得分:2)
等一会儿。你看到的是模拟器启动。
答案 2 :(得分:1)
答案 3 :(得分:1)
另外,调用setContentView()两次并不理想。在main.xml中定义TextView,并从代码中引用文本字段。像这样:
TextView tv = (TextView)findViewById("textViewId");
tv.setText("Here goes the text!");
答案 4 :(得分:1)
我遇到了这个问题,并花了一整天的时间在网上寻找解决方案。 Eclipse控制台日志已在以下位置停止:
[2011-04-02 10:32:57 - MMarketSurvey] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.okune.mmarketsurvey/.mmarketsurvey }
我访问了这个页面,但我没有得到任何问题的解决方案。我几乎放弃但仍觉得它不是什么大事,因为一切似乎都好,只是我无法在模拟器上得到你好的android文本。当你完成其他所有事情时,一件小事似乎不起作用,这是非常令人沮丧的。
引用this forum thread中的shodhanshah:
一切都很好但是模拟器在主屏幕上 应用程序在后台运行。我切换到应用程序 屏幕,发现应用程序运行正常。
只需在键盘上按家,点击屏幕上的应用,然后点击您的应用名称。
答案 5 :(得分:0)
我也遇到了同样的问题。等到它下载模拟器,然后单击android的锁定按钮,然后顺时针旋转圆圈,然后打开Android应用程序。然后,如果你单击android中的主选项,那么你可以点击你的项目名称,然后你会看到那里的输出。
答案 6 :(得分:0)
致电后
setContentView(R.layout.main);
您无需再次使用它将text
设置为textview
。你可以像这样使用它。
TextView tv = new TextView(R.id.textview1);
tv.setText("Hello, Android");
它会起作用。