简单的Android应用程序无法启动失败

时间:2011-05-31 01:59:34

标签: android

你好堆栈溢出的人,我刚开始用android开发并遇到了一些问题。我正在尝试运行一个非常简单的应用程序,该应用程序只有一个按钮,单击此按钮会将文本更新为当前时间。但是,应用程序甚至没有启动。我正在读一本书。 “从Android 2开始”,我只是在学习XML布局。相同的应用程序在没有XML布局的情况下工作,因此它可能与我的xml有关。

无论如何,我在机器人2上运行它,如果有帮助的话。

下面是代码。

package apt.tutorial;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.util.Date;

public class FirstApp extends Activity implements View.OnClickListener {
    /** Called when the activity is first created. */
    Button btn;

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        setContentView(R.layout.main);

        btn = (Button)findViewById(R.id.button);
        btn.setOnClickListener(this);
        updateTime();
    }

    public void onClick(View view) {
        updateTime();
    }

    private void updateTime() {
        btn.setText(new Date().toString());
    }
}

和XML文件

<Button xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/button"
    android:text=""
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />

提前致谢。

3 个答案:

答案 0 :(得分:2)

您应该将按钮包含在布局中(线性,相对等):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" >
    <Button xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/button"
    android:text=""
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />
</LinearLayout>

答案 1 :(得分:0)

两个答案都不正确。该xml中唯一缺少的是第一行:

<?xml version="1.0" encoding="utf-8"?>

当然,您需要使用某种ViewGroup来制作任何有意义的UI,但是setContentView可以将任何视图作为参数

答案 2 :(得分:-1)

问题是您的根布局必须是ViewGroup。将布局更改为类似的内容,例如:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <Button
        android:id="@+id/button"
        android:text=""
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>
</LinearLayout>