我正在编写此代码并收到错误:
“抱歉!申请表 Android_Name(进程com.pckge)有 意外停了下来。请试试 再次。强制关闭“
错误是什么?
package com.pckge;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.util.Date;
public class Now extends Activity implements View.OnClickListener {
Button btn;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
btn.setOnClickListener(this);
updateTime();
setContentView(btn);
}
@Override
public void onClick(View view) {
updateTime();
// TODO Auto-generated method stub
}
private void updateTime() {
btn.setText(new Date().toString());
// TODO Auto-generated method stub
}
}
答案 0 :(得分:6)
你的行
btn.setOnClickListener(this);
当'btn'尚未初始化时调用。它是NULL,所以你不能调用它的成员。首先为它分配一个真实的按钮。
(请注意,Button btn;
仅设置类型)
在下面的评论中引用@jems,因为我同意它:
在super.onCreate之后添加行btn = new Button(this)
应该可以解决问题,但是在xml中定义布局可能更好
答案 1 :(得分:2)
您需要初始化按钮。 我假设你已经用XML创建了按钮并设置了android:name =“buttonID”。
按钮btn; btn = findViewById(R.id.buttonID);