我在LayoutEditor中遇到一些错误。


  无法实例化。 ... java.lang.NullPointerException


在我的应用程序中,我尝试将ApplicationContext传递给类,但是出现这些错误,我无法弄清楚为什么?
这是MainActivty

 public class MainActivity extends Activity {

static Window   window;
static Context  context;
static Consts consts;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
     window = this.getWindow();
     context = this.getApplicationContext();
     consts = new Consts();

    setContentView(R.layout.activity_lap_timer);

}


在Consts类中,我尝试通过静态变量获取上下文

private Context context = MainActivity.context;


public Consts() {

    DisplayMetrics metrics = this.context.getResources().getDisplayMetrics(); <-- here i have the error


对不起,我忘了这个

public static Consts getConsts() {
    if(_currentConsts==null)
        return new Consts();
    return _currentConsts;
}


这件事很重要,如何用this处理构造函数(在Consts类中)?

我能做什么 ?

最佳答案

如下所示将MainActivity上下文传递给Consts类构造方法。

consts = new Consts(MainActivity.this);


并将构造函数上下文分配给Consts类中的全局变量上下文,如下所示。

Context ctx;
public Consts(Context ctx)
{
  this.ctx = ctx;
  DisplayMetrics metrics = ctx.getResources().getDisplayMetrics();

}

关于android - 如何正确传递上下文?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13819990/

10-12 00:32
查看更多