如果我在除MainActivity之外的其他类中使用findViewById,我的应用程序崩溃

时间:2013-01-02 15:21:49

标签: android

我需要使用方法setText()在TextView中编写文本。 如果我写这个

TextView t = (TextView)this.findViewById(R.id.test);

在我的MainActivity类中它可以工作,如果我尝试在另一个类中编写它,例如这里

public class AssociaCarta extends Activity{
    public void associaCarta(int numeroRandom, ImageView carta) {   
        TextView t = (TextView)this.findViewById(R.id.test);
    }
}

我的应用崩溃了。 我不明白为什么。

1 个答案:

答案 0 :(得分:3)

解决方案是将当前Activity作为参数传递给您的方法,如下所示:

public class AssociaCarta {
    public void associaCarta(Activity context, int numeroRandom, ImageView carta) {
        TextView t = (TextView) context.findViewById(R.id.user);
    }
}

然后你会在你的MainActivity中使用它:

AssociaCarta carta = new AssociaCarta();
carta.associaCarta(this, randomNumber, cartaImageView);