Android 如何从不扩展活动的类使用setContentView(int)
我需要从另一个不扩展活动的类的主活动调用setContentView(int)Android 如何从不扩展活动的类使用setContentView(int),android,android-activity,android-context,Android,Android Activity,Android Context,我需要从另一个不扩展活动的类的主活动调用setContentView(int) 在我的自定义类中,我得到了私有上下文变量,但我不知道如何使用上下文变量访问活动方法。一种解决方案(可能不是最优雅的)是将调用活动传递给另一个类,而不仅仅是上下文。如果您的上下文是Activity类的实例,简单的类转换应该可以工作: Activity a = (Activity) context; a.setContentView(R.layout.your_layout); 您必须传入对正在使用的活动的引用 像这样
在我的自定义类中,我得到了
私有上下文从构造函数中的活动传递的代码>变量,但我不知道如何使用上下文变量访问活动方法。一种解决方案(可能不是最优雅的)是将调用活动传递给另一个类,而不仅仅是上下文。如果您的上下文是Activity类的实例,简单的类转换应该可以工作:
Activity a = (Activity) context;
a.setContentView(R.layout.your_layout);
您必须传入对正在使用的活动的引用
像这样的
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...
}
}
这应该行得通,但我不知道为什么,布局实际上没有改变。。我正在调试,代码到达了那里,显然它已经被执行了,但是没有效果。。我只是在做:活动a=(活动)上下文;a、 setContentView(R.layout.first);例如,使用此解决方案,我可以从TextView中获取文本,但我无法设置文本,因为它没有被设置。@sergi您确定它是在onCreate活动阶段执行的吗?在我的主活动(在onCreate中)中,我调用setContentView(int),这样就可以了。另外,在我的主活动的onCreate中,我创建了一个helper类的对象,在这个helper类中,我最终需要从我的主活动调用setContentView(int)。helper类内的这个setContentView(int)调用没有任何作用。不过,我设置的视图来自错误的线程。。但我不知道它为什么没有坠毁。