如何解决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? 请帮忙吗?
答
尝试把你的代码在你的片段1
@Override
public void onResume() {
super.onResume();
new getUserGroupAsync().execute();
}
答
的方法的onResume我从你的代码假设getUserGroupAsync
类被称为systemStatus
另一个类中?很难说,因为类通常首字母大写(GetUserGroupAsync
和SystemStatus
),其中对象的第一个字母是小写(getUserGroupAsync
和systemStatus
)。
如果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...
请发表您的异常的堆栈跟踪。 – Knossos
另外,这个代码编译? systemStatus.new getUserGroupAsync()。execute();似乎不是正确的语法。 – Knossos
我的回答没有用? – PPartisan