如何解决NullPointer异常?

问题描述:

我有在标签1 3片(片段)的应用程序我有一个异步方法这样如何解决NullPointer异常?

public class getUserGroupAsync extends AsyncTask<JSONObject,Void,JSONObject>{ 
     String resp; 
     @Override 
     protected JSONObject doInBackground(JSONObject... params) { 

      JSONObject paramObj = new JSONObject(); 

      try { 
       getToken(); 
       method = "hostgroup.get"; 
       paramObj.put("output","groupids"); 

       response = sendJsonRequest.getResponse(method,paramObj,token); 
       resp = response.getString("result"); 
      } 

      catch (JSONException e) { 
       System.out.println("Error "+e.getMessage()); 
      } 





     } 
    } 

当我从标签1切换到另一个选项卡之后,我要回到标签1欲重新加载异步任务。

我想是这样的:

public class ClientActivity extends ActionBarActivity{ 
     protected void onCreate(Bundle savedInstanceState) { 
     public void onPageSelected(int position) { 




        if (position == 0){ 


         systemStatus.new getUserGroupAsync().execute(); 


        } 





       } 
    } 
} 

,但我得到一个NullPointerException? 请帮忙吗?

+0

请发表您的异常的堆栈跟踪。 – Knossos

+0

另外,这个代码编译? systemStatus.new getUserGroupAsync()。execute();似乎不是正确的语法。 – Knossos

+0

我的回答没有用? – PPartisan

尝试把你的代码在你的片段1

@Override 
public void onResume() { 
    super.onResume(); 
    new getUserGroupAsync().execute(); 
} 

的方法的onResume我从你的代码假设getUserGroupAsync类被称为systemStatus另一个类中?很难说,因为类通常首字母大写(GetUserGroupAsyncSystemStatus),其中对象的第一个字母是小写(getUserGroupAsyncsystemStatus)。

如果getUserGroupAsync是一个名为systemStatus类,它是通过选项卡访问里面,那么最好的方法是将刷新你的数据是这样的:

class systemStatus extends Fragment { 
    private getUserGroupAsync asyncTask = null; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     if (asyncTask == null) { 
      asyncTask = new getUserGroupAsync(); 
      asyncTask.execute(); 
     } 
    } 

    @Override 
    public void onResume() { 
      asyncTask = new getUserGroupAsync(); 
      asyncTask.execute(); 
     } 

    //... 
    public class getUserGroupAsync extends AsyncTask<JSONObject,Void,JSONObject>{ 
    //etc...