Android MainActivity无法启动

时间:2013-08-15 11:06:35

标签: android

我有一个像这样的MainActivity.java文件

public class MainActivity extends Activity {
EditText etword, etmean;
Button binsert;
Context c;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    etword = (EditText) findViewById(R.id.etWord);
    etmean = (EditText) findViewById(R.id.etMeaning);
    binsert = (Button) findViewById(R.id.bInsert);


    setContentView(R.layout.activity_main);
}

}

当我不将setOnclickListener设置为我的按钮时,此文件效果很好。但是当我这样做时,主要活动无法启动。问题出在哪儿????我正在设置像这样的onclicklistener ....     binsert.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            binsert.setTextColor(Color.BLUE);
        }
    });

显示RuntimeException错误和NullPointerException错误。我错过了什么?

3 个答案:

答案 0 :(得分:1)

您需要先将内容设置为活动,然后初始化视图。

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);  // should come first
etword = (EditText) findViewById(R.id.etWord); // then initialize views
etmean = (EditText) findViewById(R.id.etMeaning);
binsert = (Button) findViewById(R.id.bInsert);
}

您可以findViewById设置为活动的当前视图层次结构。你的initiazlization失败了。因此NullPointerException

答案 1 :(得分:1)

首先,您需要设置内容视图。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main); <--------------------------------see this line
    etword = (EditText) findViewById(R.id.etWord);
    etmean = (EditText) findViewById(R.id.etMeaning);
    binsert = (Button) findViewById(R.id.bInsert);



}

答案 2 :(得分:0)

应该首先调用

setContentView()。检查日志输出(logcat)也有助于这种情况。