Android按back后执行过程,安卓app测试获取接口返回数据,然后处理数据,放在一个button点击事件里面 执行顺序有问题?无法获取数据?...
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点击事件里面 执行顺序有问题?无法获取数据?...相关推荐
- Android Studio 运行HyperLPR开源项目安卓APP
Android Studio 运行HyperLPR开源项目安卓APP 前提:已安装Android Studio 作为一个安卓小白,我学uni-app只是机缘巧合,只是想看看微信小程序怎么开发的,然后一 ...
- 安卓APP测试知识大全【面试储备】
一.安卓系统知识概述 1.1 安卓系统架构 应用程序层 应用程序框架层 系统运行库库层 系统内核层 四大组件和API 1.2 安卓权限系统 Android操作系统其实是一个多用户的linux操作系统, ...
- 安卓APP测试要怎么测,测试流程和重点有哪些?我来告诉你
目录 一.安卓系统知识概述 1.1 安卓系统架构 1.2 安卓权限系统 1.3 认识adb与安卓间的通信 二.安卓APP测试流程图 三.安卓App测试点 3.1 UI测试 3.2 兼容性测试 3.3 ...
- 安卓APP测试流程与技术知识大全介绍--可用于面试储备
----再别人基础上新增------全-----有不足/遗漏请补充------- 一.安卓系统知识概述 1.1 安卓系统架构 应用程序层 应用程序框架层 系统运行库库层 系统内核层 四大组件和API ...
- 【转】安卓APP测试流程与技术知识
-----感觉很实用,怕博主删,转载下,原文链接: https://blog.csdn.net/bbs11007/article/details/99699316 一.安卓系统知识概述 1.1 安卓系 ...
- 关于前端 js 点击事件重复执行
前言 描述:本文用来记录,解决 点击事件重复执行的几种办法. 实例代码: myChart.on("click",function (){}) 解决办法: 一.使用 myChart. ...
- android 快传 源码_安卓APP仿茄子快传源码,Android项目源码类似茄子快传的快传项目包括服务端...
适用范围:安卓APP仿茄子快传源码,Android项目源码类似茄子快传的快传项目包括服务端 演示地址:(以截图为准) 运行环境:Android+PC+web 其他说明: 本项目是一个基于安卓的类似茄子 ...
- 搭建Android开发环境 以及 ionic 编译安卓app步骤
1. 下载安装JDK 下载地址: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htm ...
- win10兼容android下载安装,Win10手机运行安卓App兼容工具下载!
[PConline 资讯]不久前有人从泄漏的Windows 10手机版build 10240中,解包出了微软内置的可以让Windows 10手机版兼容安卓App的模块,详情可以点此查看.不过,Wind ...
最新文章
- 【Smooth】非线性优化
- 網絡問題flapping between port
- 1.4操作系统的变革
- 我犯了一个错误,您能指出吗?(结论)
- AtCoder AGC024F Simple Subsequence Problem (字符串、DP)
- 128位计算机 ps2,64位就是最强电脑?难道就没有128位的电脑吗
- 【Drools二】打工人学习Drools基础语法
- shel脚本中怎么引用文件_Linux shell脚本中如何读取跟shell脚本同一目录下的配置文件...
- ajax返回的数据怎么显示出来_Excel输入汉字、拼音首字母就能显示数据出来,录数据时逐步提示...
- Sophos 和 ReversingLabs 公开含2000万个 PE 文件的数据集
- Shiro JSP 标签
- Python自学笔记-map和reduce函数(来自廖雪峰的官网Python3)
- IIS故障问题(Connections_Refused)分析及处理
- GoldenGate 常见错误分析(二)
- C语言找出完数并输出
- 大一线性代数知识点总结
- 红帽子linux管理
- 用python爬取企查查_python爬取企查查江苏企业信息生成excel表格
- ROM制作工具V1.0.0.22版本全新推出
- 计算机模拟人脑,人造突触问世,计算机模拟人脑不是梦
热门文章
- java 套接字 访问tcp_Java 网络编程(五) 使用TCP/IP的套接字(Socket)进行通信
- ae自动曝光_拾光剪影|手机摄影对焦曝光与Ae使用
- screw ---- 数据库转文档
- php ajax跳转,ajax接口的php文件如何实现跳转
- php zhxing iptables,Linux iptables 扩展 ipset 使用教程
- The remote endpoint was in state [TEXT_FULL_WRITING] which is an invalid state for called method
- WCF学习笔记(一):WCF Service Application和WCF Service Library的区别
- HDU 2571(dp)题解
- 《R与Hadoop大数据分析实战》一1.6 HDFS和MapReduce架构
- response.getWriter().write()与out.print()的区别