LayoutInflater上的NullPointer - Android

时间:2013-07-02 15:09:25

标签: android nullpointerexception android-context

我在另一个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();

2 个答案:

答案 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)

ActivityContext延伸,这意味着您只需LayoutInflater inflater = LayoutInflater.from(this);方法中的onCreate()