android app force关闭

时间:2011-09-21 19:47:26

标签: android android-xml

我有这个Android代码。我在xml文件中定义了按钮的布局。我想通过id来设置按钮的文本。但是app力close.whats错了吗?

  package com.action ;
  import android.app.Activity;
  import android.os.Bundle;
  import android.widget.Button;

  public class ActionActivity extends Activity {
     @Override
     public void onCreate(Bundle i){
         super.onCreate(i);
         Button button=(Button) findViewById(R.id.but);
         button.setText("Hey!!");
         setContentView(R.layout.main);
         }
}

...日Thnx

3 个答案:

答案 0 :(得分:5)

在使用setContentView(R.layout.main);之前,您必须先使用findViewById()

如果您不这样做,findViewById()将返回null(因为当前布局中没有该ID的视图),并且在尝试设置时您将获得NullPointerException TextView上的文字。

onCreate()的正确版本应如下所示:

public void onCreate(Bundle i) {
    super.onCreate(i);

    setContentView(R.layout.main);
    Button button = (Button) findViewById(R.id.but);
    button.setText("Hey!!");
}

答案 1 :(得分:3)

在创建Button实例之前放置setContentView(R.layout.main)。 像这样:

    setContentView(R.layout.main);

    Button button=(Button) findViewById(R.id.but);
    button.setText("Hey!!");

答案 2 :(得分:0)

在设置findViewById(R.id.but)之前必须先放置setContentView(R.Layout.main)。因为它会生成nullpointer Exception。