我需要从另一个未扩展Activity的类中的主Activity调用setContentView(int)。如何从未扩展的类使用setContentView(int)活动
在我的自定义类中,我得到了private Context context;
var从构造函数中传递的var,但我无法弄清楚如何使用context
变量访问Activity方法。
我需要从另一个未扩展Activity的类中的主Activity调用setContentView(int)。如何从未扩展的类使用setContentView(int)活动
在我的自定义类中,我得到了private Context context;
var从构造函数中传递的var,但我无法弄清楚如何使用context
变量访问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...
}
}
这应该工作,但我不知道为什么,布局没有被实际改变.. 我m调试和代码到达那里,显然它被执行,但它没有效果。 我只是在做: 活动a =(Activity)上下文; a.setContentView(R.layout.first); – sergi
有了这个解决方案,例如我可以从TextView中获取文本,但我无法设置文本,因为它没有被设置。 – sergi
@sergi您确定它是在onCreate活动阶段内执行的吗? –