[英]Run code from MainActivity in another Class
好吧,所以我为自定义的顶部菜单栏创建了一个类,因为我认为这样很方便。 现在我有一个小问题。 我希望MainActivity.class
处理要显示的视图和什么。 但是onClick侦听器位于TopMenu.class
,从另一个类激活MainActivity中的方法的最简单方法是什么? (如果有)
MainActivity.class方法:
public void setScene(String scene) {...}
TopMenu.class:
private void clickButton(String btnName) {
if (active) {
switch (btnName) {
case "Run": {
//Example of what I want...
parentContext.setScene("test");
break;
}
case "Shop": {
break;
}
case "Play": {
break;
}
case "List": {
break;
}
}
}
}
我已经有Context
和MainActivity
的View
的副本,如果可以帮助完成该过程的话...
您必须将上下文setScene
为您的活动(因为Context
类不包含名为setScene
的方法)。
像这样:
if(parentContext != null){
((MainActivity)parentContext).setScene("test");
}
或者,您可以创建一个接口:
public interface SceneControlInterface {
public void setScene(String scene);
}
然后,当实例化TopMenu时,可以将接口的实例传递给它(当然,您必须修改构造函数方法以接受它):
TopMenu mMenu = new TopMenu(new SceneControlInterface(){
@Override
public void setScene(String scene){
//do something with scene
}
});
创建一个保存您的setScene(...)
方法的帮助程序类。 使用Singleton模式或简单地将setScene(...)
声明为静态方法。
public class SceneHelper{
public static void setScene(String scene, View viewToBeChanged){
//Your stuff
}
}
那是一种方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.