[英]How to get a JSON object data from AsyncTask<Void, Void, JSONObject>?
我有一個MainActivity類。 一個Login類,它擴展了AsyncTask。 執行Login類之后,它將JSONObject返回到MainActivity,如下所示:
AsyncTask<Void, Void, JSONObject> getData = (new Login()).execute();
現在如何將數據與getData分開?
我返回的JOSNObject看起來像:
{"FirstName":"A","LastName":"B","ID":"09","Cell":"0123456789","Email":"abc@yahoo.com"}
還是我需要以不同的方式處理這些問題?
您可以在doInBackground
上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");
現在,您已經在differents字符串上分離了數據。
要將數據從AsyncTask傳遞到您的Activity,可以創建一個回調方法。
首先創建一個界面
public interface OnTaskCompleteListener{ public void onTaskCompleted(JsonObject jsonobj); }
然后在Activity中實現並覆蓋其方法
public class MainActivity extends Activity implements OnTaskCompleteListener{ @Override public void OnTaskCompleted(JsonObject jsonobj) { }
最后從您的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); } }
希望這就是您想要的。 如果有疑問,可以參考以下問題:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.