为什么我一直在setOnClickListener上获取null异常

时间:2010-09-13 17:26:13

标签: android

为什么我要在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();
                    }

                    ;});

            }

1 个答案:

答案 0 :(得分:1)

你这样做是错误的......你有类似的东西:

exercise = (RadioGroup)this.findViewById(R.id.exerciseType);

我猜这是onCreate方法,在这些行之前你应该有另一个setContentView(R.layout.anotherstuff);。然后,您使用loadAddEntry方法setContentView(R.layout.dataentry);。所以,这里有一个问题:如果你已经定义了另一个内容视图,为什么要重新定义它呢?