我有一个MainActivity类。一个扩展AsyncTask的Login类。执行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"}
还是我需要以不同的方式处理这些问题?
答案 0 :(得分: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");
现在你在不同的字符串上分开了数据。
答案 1 :(得分:0)
要将数据从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);
}
}
我希望这就是你想要的。如果有疑问,你可以参考这个问题: