我有一个像这样的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错误。我错过了什么?
答案 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)也有助于这种情况。