如何在非活动类中查找视图?

时间:2011-12-12 15:18:06

标签: android

我想在非活动类中找到一个ToggleButton,但是我得到一个nullpointerException。我喜欢下一个代码:

public class ClassMode{
    public static boolean isClassMode(Context c) {
    ToggleButton t = new ToggleButton(c);
    t = (ToggleButton) t.findViewById(R.id.classmode);
    if (t.isChecked()) {
        return true;
    } else {
        return false;
    }
}

 public static void setNextMode(final Context context){
   if(isClassMode){
        dosomething();
    }
  }
}

我做错了吗?我是一个新的节目主持人,我想这个问题可能没什么。但对我来说恰恰相反。   请帮助我!期待您的回复。  3Q!

2 个答案:

答案 0 :(得分:0)

findViewById会在您调用它的对象中找到一个视图。通常它会调用一个活动,但也可以在任何有孩子的ViewGroup上调用。

在您的情况下,您可以在Button对象上调用它。我怀疑此按钮包含身份R.id.classmode的孩子。

尝试:

c.findViewById(R.id.classmode)

(注意:您应该发布一个LogCat,其中包含您获得的实际异常,否则我们只是在猜测)

答案 1 :(得分:0)

更改行

t = (ToggleButton) t.findViewById(R.id.classmode);

t = (ToggleButton) findViewById(R.id.classmode);