为什么我要在setOnClickListener上获得null错误? R.layout.dataentry是ContentView。它有addRecord(一个按钮),它加载并显示正常。 当我查看调试器时,看起来R.id.addRecord获取了一个ID。 我确定它与ContentView未正确加载有关,导致我尝试添加listenter时出现空指针异常,但我尝试过多种方式预加载(这里,前面)我无法想象如何做到这一点。我想我希望缓存所有视图,以便尽早添加监听器。有人可以帮忙吗?
感谢。
exercise = (RadioGroup)this.findViewById(R.id.exerciseType);
addRecord = (Button)this.findViewById(R.id.addRecord);
amount = (TextView)this.findViewById(R.id.amount);
datePerformed = (DatePicker)this.findViewById(R.id.datePerfomed);
public void loadAddEntry() {
setContentView(R.layout.dataentry);
addRecord.setOnClickListener(
new View.OnClickListener(){
public void onClick(View view) {
addRecordClicked();
}
;});
}
答案 0 :(得分:1)
你这样做是错误的......你有类似的东西:
exercise = (RadioGroup)this.findViewById(R.id.exerciseType);
我猜这是onCreate
方法,在这些行之前你应该有另一个setContentView(R.layout.anotherstuff);
。然后,您使用loadAddEntry
方法setContentView(R.layout.dataentry);
。所以,这里有一个问题:如果你已经定义了另一个内容视图,为什么要重新定义它呢?