Android - java将全局上下文设置为另一个类

时间:2018-06-12 03:19:43

标签: java android activerecord android-context

第一个问题是我有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没有上下文

1 个答案:

答案 0 :(得分:0)

不确定你为什么要这样做。有一些方法可以减少单个java类的行,而不是在其他类中保留UI引用或者通过其他类来呈现UI。您可以将业务逻辑(非UI)封装在其他类中,这些类可以提高代码的可读性,或者在您的情况下,如果您有多个具有类似行为的活动,您可以创建基本抽象活动类并放置所有基本代码它。