我在另一个java文件中有一个类,我在MainActivity中调用它。我需要在外部类中夸大一些布局。我遇到的问题是指定上下文,因为当我尝试给布局充气时,我得到一个空指针异常。该类没有自己的onCreate()
方法,所以我需要从MainActivity传递上下文?不确定如何去做。这导致我NullPointerException
:
Context context = getApplicationContext();
LayoutInflater inflater = (LayoutInflater)context.getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);;
NullPointerException
上下文中的 Context
:
public class CameraListener extends Activity implements OnCameraChangeListener {
private static final int SCALE_HEIGHT = 50;
GoogleMap mMap;
GoogleC3iActivity mParent;
Context context = getApplicationContext();
答案 0 :(得分:2)
多个问题
<强>第一强>
Context context = getApplicationContext();
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
您不应该使用getApplicationContext(),因为您已经拥有它。
OR (来源:@Delyan)
LayoutInflater.from(context)
<强>第二强>
Context context = getApplicationContext();
在setContentView
之前无效。因此,在setContentView
onCreate
后,您需要初始化上下文
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
context = getApplicationContext() ;
同样适用于LayoutInflater
,您需要在onCreate
答案 1 :(得分:0)
Activity
从Context
延伸,这意味着您只需LayoutInflater inflater = LayoutInflater.from(this);
方法中的onCreate()
。