Android intent call gives error in asynctask onPostExecute() method
Hey my question has to do with intents and asynctask in android I have the
following code where i launch the asynctask from a button
Button.OnClickListener buttonSignin = new Button.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
ConnectivityManager connMgr = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo == null && networkInfo.isConnected() ==
false) {
Toast.makeText(getApplicationContext(), "No Internet
connection", Toast.LENGTH_SHORT).show();
}
else if(editUserName.getText().length() == 0 &&
editPassword.getText().length() == 0){
Toast.makeText(getApplicationContext(), "Please fill
required details", Toast.LENGTH_SHORT).show();
}else{
enteredUserName = editUserName.getText().toString();
password = editPassword.getText().toString();
List<NameValuePair> nameValuePairs = new
ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("username",
enteredUserName));
nameValuePairs.add(new BasicNameValuePair("password",
password));
atn = new AsyncTaskNetwork();
atn.execute("http://staff.faharitech.com/raphael/hirizi/api/public/v1/user/login",nameValuePairs);
// new
sendLoginDetails().execute("http://staff.faharitech.com/raphael/hirizi/api/public/v1/user/login");
}
the asynctask is in a different public class which is here
public class AsyncTaskNetwork extends AsyncTask<Object, Integer, String> {
ConnectToAPI conn;
LoginActivity la;
@Override
protected String doInBackground(Object... params) {
// TODO Auto-generated method stub
String result = null;
try {
conn = new ConnectToAPI();
String url = (String) params[0];
List<NameValuePair> nameValuePairs = ( List<NameValuePair>)
params[1];
result = conn.postData(url, nameValuePairs);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
@Override
protected void onPostExecute(String result){
la = new LoginActivity();
la.parseJsonData(result);
}
}
finally the method being called onPostExecute is in the same class as the
button which launched the asynctask
public void parseJsonData(String result){
try{
JSONObject json_data = new JSONObject(result);
if(json_data != null){
JSONObject jObj = json_data.getJSONObject("user");
if(jObj != null){
JSONObject jObj2 =null;
username = jObj.getString("username");
System.out.println(username);
token = jObj.getString("token");
System.out.println(token);
fullName = jObj.getString("full name");
System.out.println(fullName);
profilePic = jObj.getString("profilePic");
System.out.println(profilePic);
System.out.println(jObj.getString("stores"));
JSONArray jArray = new JSONArray(jObj.getString("stores"));
for(int i = 0; i < jArray.length(); i++){
jObj2 = jArray.getJSONObject(i);
sName = jObj2.getString("name");
System.out.println(sName);
sId = jObj2.getString("id");
System.out.println(sId);
logo = jObj2.getString("logo");
System.out.println(logo);
}
displayResults = username + " " + token;
}
else{
JSONObject jObjMessage = json_data.getJSONObject("message");
errMessage = jObjMessage.getString("message");
displayResults = errMessage;
}
}
}catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
if(username != null && token != null){
Intent intent = new
Intent(getApplicationContext(),NavigationActivity.class);
startActivity(intent);
}
else{
Toast.makeText(getApplicationContext(),errMessage, 10000000).show();
}
}
my question is the error arises on the intent call a nullpointerexception
something to do with the context which context should I use there other
than getApplicationContext()
update the logcat
08-19 14:59:45.649: E/AndroidRuntime(6897): FATAL EXCEPTION: main
08-19 14:59:45.649: E/AndroidRuntime(6897): java.lang.NullPointerException
08-19 14:59:45.649: E/AndroidRuntime(6897): at
android.content.ContextWrapper.getPackageName(ContextWrapper.java:135)
08-19 14:59:45.649: E/AndroidRuntime(6897): at
android.content.ComponentName.(ComponentName.java:75) 08-19 14:59:45.649:
E/AndroidRuntime(6897): at android.content.Intent.(Intent.java:3491) 08-19
14:59:45.649: E/AndroidRuntime(6897): at
com.faharitech.hirizi.LoginActivity.parseJsonData(LoginActivity.java:336)
08-19 14:59:45.649: E/AndroidRuntime(6897): at
com.faharitech.hirizi.AsyncTaskNetwork.onPostExecute(AsyncTaskNetwork.java:36)
08-19 14:59:45.649: E/AndroidRuntime(6897): at
com.faharitech.hirizi.AsyncTaskNetwork.onPostExecute(AsyncTaskNetwork.java:1)
08-19 14:59:45.649: E/AndroidRuntime(6897): at
android.os.AsyncTask.finish(AsyncTask.java:631) 08-19 14:59:45.649:
E/AndroidRuntime(6897): at
android.os.AsyncTask.access$600(AsyncTask.java:177) 08-19 14:59:45.649:
E/AndroidRuntime(6897): at
android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
08-19 14:59:45.649: E/AndroidRuntime(6897): at
android.os.Handler.dispatchMessage(Handler.java:99) 08-19 14:59:45.649:
E/AndroidRuntime(6897): at android.os.Looper.loop(Looper.java:137) 08-19
14:59:45.649: E/AndroidRuntime(6897): at
android.app.ActivityThread.main(ActivityThread.java:5041) 08-19
14:59:45.649: E/AndroidRuntime(6897): at
java.lang.reflect.Method.invokeNative(Native Method) 08-19 14:59:45.649:
E/AndroidRuntime(6897): at
java.lang.reflect.Method.invoke(Method.java:511) 08-19 14:59:45.649:
E/AndroidRuntime(6897): at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
08-19 14:59:45.649: E/AndroidRuntime(6897): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 08-19
14:59:45.649: E/AndroidRuntime(6897): at
dalvik.system.NativeStart.main(Native Method)
No comments:
Post a Comment