【问题标题】:How to get a JSON object data from AsyncTask<Void, Void, JSONObject>?如何从 AsyncTask<Void, Void, JSONObject> 获取 JSON 对象数据?
【发布时间】:2015-10-08 16:56:59
【问题描述】:

我有一个 MainActivity 类。一个扩展 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方法中执行json解析..
  • 我知道,但我想在我的 MainActivity 类中获取数据
  • 您可以将这些value 存储在onPostExecution 方法中的局部变量中

标签: java android json android-asynctask


【解决方案1】:

你可以在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");

现在您可以在不同的字符串上分离数据。

【讨论】:

  • 我知道这个过程,但我想在我的 MainActivity 类中获取数据
  • 您可以将 ArrayList 上的字符串和过去的 Array 保存到另一个 Activity,使用...例如...a Bundle and IntentSharedPreferences
  • 好的,谢谢,如果我遵循您的第一个解决方案,那么我需要从 Login 类开始一个活动。我用谷歌搜索但无法获得解决方案。你能试着解决我的问题吗?
  • 您可以在 google 上进行 Splash Screen 搜索,这很容易。如果您有任何问题,请告诉我。 =)
【解决方案2】:

要将数据从 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 sending callbacks to ui

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    相关资源
    最近更新 更多