如何从不扩展Activity的类中使用setContentView(int)

时间:2011-07-15 16:43:08

标签: android android-activity android-context

我需要从另一个不扩展Activity的类中调用我的主Activity中的setContentView(int)。

在我的自定义类中,我获得了从构造函数中的Activity传递的private Context context; var,但我无法弄清楚如何使用context变量访问Activity方法。 / p>

3 个答案:

答案 0 :(得分:11)

如果您的上下文是Activity类的实例,则简单的类转换应该起作用:

Activity a = (Activity) context;
a.setContentView(R.layout.your_layout);

答案 1 :(得分:1)

一个解决方案(可能不是最优雅的)是将调用活动传递给另一个类,而不仅仅是上下文。

答案 2 :(得分:0)

您必须传入对您正在使用的活动的引用。

像这样的东西

class ActivityA extends Activity{
   @Override
   public void onCreate(Bundle state){
      super.onCreate(state);
      ClassA myclass = new ClassA(this);
   }
}

然后A级会有:

class ClassA {
   public ClassA(Activity yourActivity){
      ... Get your view here ....
      yourActivity.setContentView(view);
      ... do more things...
   }
}