第一个问题是我有500行的java类。那将是如此糟糕,所以我想拆分他们。我在另一个stackoverflow线程中找到了解决方案,我们可以将主类上下文传递给另一个类。
//main class
Public class Main{
@Override
Public void onCreate(Bundle inst)
{
Super.onCreate(inst);
ClassB bclass = new ClassB(this);
bclass.setLayout();
}
}
//B class
Public class ClassB{
Activity act1;
Public ClassB(Activity act)
{
act1 = act;
}
Public void setLayout()
{
this.act1.setContentView(R.layout.lay);
}
}
好的,那可行。但是如何让act1成为我们的主要背景?所以每次我想从ClassB调用setContentView我都不需要再次使用act1
编辑1: 我希望是,我想将act1作为ClassB的默认上下文。所以当我从ClassB调用setContentView时,它直接调用Main.setContentView
因为如果我只是从ClassB调用setContentView,我会得到NullPointerException。它是有道理的,因为ClassB没有上下文
答案 0 :(得分:0)
不确定你为什么要这样做。有一些方法可以减少单个java类的行,而不是在其他类中保留UI引用或者通过其他类来呈现UI。您可以将业务逻辑(非UI)封装在其他类中,这些类可以提高代码的可读性,或者在您的情况下,如果您有多个具有类似行为的活动,您可以创建基本抽象活动类并放置所有基本代码它。