Reputation: 17
I have an MainActivity class. one Login class which extends AsyncTask. after execute Login class, it will return JSONObject to MainActivity like:
AsyncTask<Void, Void, JSONObject> getData = (new Login()).execute();
Now how can I separate data from getData?
my returned JOSNObject will looks like:
{"FirstName":"A","LastName":"B","ID":"09","Cell":"0123456789","Email":"[email protected]"}
or do I need to handle these in different way?
Upvotes: 0
Views: 1274
Reputation: 789
To pass data from AsyncTask to your Activity you can create a call back method.
First create a Interface
public interface OnTaskCompleteListener{
public void onTaskCompleted(JsonObject jsonobj);
}
Then implement and override its method in Activity
public class MainActivity extends Activity implements OnTaskCompleteListener{
@Override
public void OnTaskCompleted(JsonObject jsonobj)
{
}
And lastly pass data from your AsyncTask
public class Login extends AsyncTask<Void, Void, JSONObject>{
private OnTaskCompleteListener listener;
public Login(OnTaskCompleteListener listener){
this.listener=listener;
}
protected void onPostExecute(JsonObject obj){
listener.onTaskCompleted(obj);
}
}
I hope this is what you wanted. You can refer this question in case of doubts:
Upvotes: 0
Reputation: 4497
You can try this on doInBackground
:
JSONObject json = new JSONObject(StringResponse);
String FirstName = json.getString("FirstName");
String LastName = json.getString("LastName");
String ID = json.getString("ID");
String Cell= json.getString("Cell");
String Email= json.getString("Email");
Now you have data separate on differents strings.
Upvotes: 1