你好堆栈溢出的人,我刚开始用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"
/>
提前致谢。
答案 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>