private JSONArray jsonArray;

btn1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

//1、访问接口方法,返回系统账户名list为json数组

jsonArray= getJson("https://ip:port/account/list");

//2、遍历jsonArray数组内容

for(int i = 0; i < jsonArray.length(); i ++) {

try {

Log.e(TAG, "操作员列表:" + jsonArray.get(i).toString());

mList.add(jsonArray.get(i).toString());

} catch (JSONException e) {

e.printStackTrace();

}

}

}

});

这两个步骤放在一个button点击事件,获取的jsonArray为空???

但是如果点击btn1 执行获取jsonArray接口事件,点击btn2 遍历jsonArray,就可以正常获取jsonArray数据。。这是啥原因??

public JSONArray getJson(String url){

OkGo.post(url_).tag("tag")

.execute(new ResponseCallback(OperateInfoActivity.this) {

@Override

public void onSuccess(String o, Call call, Response response) {

super.onSuccess(o, call, response);

try {

Log.e("Login", "-- sucess " + o);

if (o != null) {

String responseStr = new String(o);

Log.e(TAG, "响应数据:" + responseStr);

JSONObject resultObject = new JSONObject(responseStr);

int errCode = resultObject.getInt("errCode");

String msg = resultObject.getString("msg");

message = msg;

Log.e(TAG, "message:" + message);

if (errCode == 200) {

String data = resultObject.getString("data");

JSONObject dataObject = new JSONObject(data);

jsonArray = (JSONArray) dataObject.get("operatorList");

} else {

}

}

} catch (Exception e) {

}

}

});

return jsonArray;

}

private void showMsg(final String msg) {

runOnUiThread(new Runnable() {

@Override

public void run() {

Toast.makeText(OperateInfoActivity.this, msg, Toast.LENGTH_SHORT).show();

}

});

}

}

回答

造成问题的原因:

JSONArray getJson(String url)该方法中的post是异步执行的。你按键onClick方法只是发起了请求,请求的结果时异步获取的,就是你的onSuccess()方法。

所以在你的按键onClick方法遍历jsonArray数组内容,还没有获取网络返回数据。

修改建议:

可以在JSONArray getJson(String url)方法中设计一个回调接口,如:void getJson(String url,CallBack getJsonCallBack),这样你在异步获取网络请求

成功的方法onSuccess回调这个getJsonCallBack,再去遍历结果就好。

public interface CallBack

{

//处理getJson网络请求数据

public void getJsonCallBack(JSONArray data);

}

当然你还要根据你的使用情况,处理数据使用流程,返回异常等情况。

Android按back后执行过程,安卓app测试获取接口返回数据,然后处理数据,放在一个button点击事件里面 执行顺序有问题?无法获取数据?...相关推荐

  1. Android Studio 运行HyperLPR开源项目安卓APP

    Android Studio 运行HyperLPR开源项目安卓APP 前提:已安装Android Studio 作为一个安卓小白,我学uni-app只是机缘巧合,只是想看看微信小程序怎么开发的,然后一 ...

  2. 安卓APP测试知识大全【面试储备】

    一.安卓系统知识概述 1.1 安卓系统架构 应用程序层 应用程序框架层 系统运行库库层 系统内核层 四大组件和API 1.2 安卓权限系统 Android操作系统其实是一个多用户的linux操作系统, ...

  3. 安卓APP测试要怎么测,测试流程和重点有哪些?我来告诉你

    目录 一.安卓系统知识概述 1.1 安卓系统架构 1.2 安卓权限系统 1.3 认识adb与安卓间的通信 二.安卓APP测试流程图 三.安卓App测试点 3.1 UI测试 3.2 兼容性测试 3.3 ...

  4. 安卓APP测试流程与技术知识大全介绍--可用于面试储备

    ----再别人基础上新增------全-----有不足/遗漏请补充------- 一.安卓系统知识概述 1.1 安卓系统架构 应用程序层 应用程序框架层 系统运行库库层 系统内核层 四大组件和API ...

  5. 【转】安卓APP测试流程与技术知识

    -----感觉很实用,怕博主删,转载下,原文链接: https://blog.csdn.net/bbs11007/article/details/99699316 一.安卓系统知识概述 1.1 安卓系 ...

  6. 关于前端 js 点击事件重复执行

    前言 描述:本文用来记录,解决 点击事件重复执行的几种办法. 实例代码: myChart.on("click",function (){}) 解决办法: 一.使用 myChart. ...

  7. android 快传 源码_安卓APP仿茄子快传源码,Android项目源码类似茄子快传的快传项目包括服务端...

    适用范围:安卓APP仿茄子快传源码,Android项目源码类似茄子快传的快传项目包括服务端 演示地址:(以截图为准) 运行环境:Android+PC+web 其他说明: 本项目是一个基于安卓的类似茄子 ...

  8. 搭建Android开发环境 以及 ionic 编译安卓app步骤

    1. 下载安装JDK 下载地址: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htm ...

  9. win10兼容android下载安装,Win10手机运行安卓App兼容工具下载!

    [PConline 资讯]不久前有人从泄漏的Windows 10手机版build 10240中,解包出了微软内置的可以让Windows 10手机版兼容安卓App的模块,详情可以点此查看.不过,Wind ...

最新文章

  1. 【Smooth】非线性优化
  2. 網絡問題flapping between port
  3. 1.4操作系统的变革
  4. 我犯了一个错误,您能指出吗?(结论)
  5. AtCoder AGC024F Simple Subsequence Problem (字符串、DP)
  6. 128位计算机 ps2,64位就是最强电脑?难道就没有128位的电脑吗
  7. 【Drools二】打工人学习Drools基础语法
  8. shel脚本中怎么引用文件_Linux shell脚本中如何读取跟shell脚本同一目录下的配置文件...
  9. ajax返回的数据怎么显示出来_Excel输入汉字、拼音首字母就能显示数据出来,录数据时逐步提示...
  10. Sophos 和 ReversingLabs 公开含2000万个 PE 文件的数据集
  11. Shiro JSP 标签
  12. Python自学笔记-map和reduce函数(来自廖雪峰的官网Python3)
  13. IIS故障问题(Connections_Refused)分析及处理
  14. GoldenGate 常见错误分析(二)
  15. C语言找出完数并输出
  16. 大一线性代数知识点总结
  17. 红帽子linux管理
  18. 用python爬取企查查_python爬取企查查江苏企业信息生成excel表格
  19. ROM制作工具V1.0.0.22版本全新推出
  20. 计算机模拟人脑,人造突触问世,计算机模拟人脑不是梦

热门文章

  1. java 套接字 访问tcp_Java 网络编程(五) 使用TCP/IP的套接字(Socket)进行通信
  2. ae自动曝光_拾光剪影|手机摄影对焦曝光与Ae使用
  3. screw ---- 数据库转文档
  4. php ajax跳转,ajax接口的php文件如何实现跳转
  5. php zhxing iptables,Linux iptables 扩展 ipset 使用教程
  6. The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for called method
  7. WCF学习笔记(一):WCF Service Application和WCF Service Library的区别
  8. HDU 2571(dp)题解
  9. 《R与Hadoop大数据分析实战》一1.6 HDFS和MapReduce架构
  10. response.getWriter().write()与out.print()的区别