尝试调用getLayoutInflater时出现空指针异常

时间:2014-03-01 18:34:21

标签: java android

在班级socialNetworksActivity我有一个方法:

public void getResultFromFBPost(String result)
{
  if (result.equals("SUC"))
    ShowToast("Your message have been posted successfully", Toast.LENGTH_LONG);
  else
    ShowToast("There was an error posting,"
        + " please check your Internt connection", Toast.LENGTH_LONG);
}

调用此方法(也在类socialNetworksActivity中):

public void ShowToast(String message, int duration)
{
    LayoutInflater inflater = getLayoutInflater();
          ....
}

当我从类中调用此方法时,它可以正常工作。

但是当我从B类这样称呼这个方法时:

@Override
protected void onPostExecute(String result)
{
  socialNetworksActivity.getResultFromFBPost(result);
  pd.dismiss();
}

代码到达时我得到NullPointerException

LayoutInflater inflater = getLayoutInflater();

知道为什么吗?

2 个答案:

答案 0 :(得分:1)

我不确定为什么LayoutInflater会回来null但是获取LayoutInflater的另一种方法是简单地调用LayoutInflater.from(this),或者如果this不是Context,那么其他上下文,可能使用方法getContext()getApplicationContext(),具体取决于您所在的课程。

答案 1 :(得分:1)

我认为从异步任务调用它是一个问题。从Activity中调用它,或者如果你不想这样做,就将活动上下文传递给AsyncTask并在该对象上调用它。 另外一定要在UI线程上调用它(你已经通过使用onPostExecute来做到这一点,但请记住这一点。)