如何解决NullPointer异常?

时间:2015-04-23 10:25:06

标签: android android-fragments android-asynctask

我在选项卡1中有一个带有3个选项卡(片段)的应用程序我有一个像这样的

的异步方法
 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? 有什么帮助吗?

2 个答案:

答案 0 :(得分:0)

尝试将您的代码放入fragment1的onResume方法

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

答案 1 :(得分:0)

我假设您的代码中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...