簡體   English   中英

如何從AsyncTask獲取JSON對象數據 <Void, Void, JSONObject> ?

[英]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"}

還是我需要以不同的方式處理這些問題?

您可以在doInBackgrounddoInBackground

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,可以創建一個回調方法。

  1. 首先創建一個界面

     public interface OnTaskCompleteListener{ public void onTaskCompleted(JsonObject jsonobj); } 
  2. 然后在Activity中實現並覆蓋其方法

     public class MainActivity extends Activity implements OnTaskCompleteListener{ @Override public void OnTaskCompleted(JsonObject jsonobj) { } 
  3. 最后從您的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); } } 

    希望這就是您想要的。 如果有疑問,可以參考以下問題:

    android asynctask發送回調到ui

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM