一个程序员一月的开销统计分析、(附上PC端和移动端android源码)
图片1(类别):



图片中的数据是我一月的花费统计分析、

这是该网站的地址:http://www.10086bank.com/(需要登录) 没有帐号马上注册一个吧、进入系统后点击“记一笔” 添加数据即可! 类别查询和详细查询!
PC端日程:



android版在这里:
android版调用站点中的webservice的功能 先上图:
// 判断是否网络连接 有返回true 失败返回false
public static boolean isNetworkConnected(Context context) {
if (context != null) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mNetworkInfo = mConnectivityManager
.getActiveNetworkInfo();
if (mNetworkInfo != null) {
return mNetworkInfo.isAvailable();
}
}
return false;
}
实现android判断当前是否有网络连接的代码。
登录成功进入主界面了:

这里是android调用webservice的代码:
//点击查询按钮获取当天数据
private ArrayList<HashMap<String, String>> GetThisMonthDataByUsercodeDetail(int year,int month,int day){
ArrayList<HashMap<String, String>> list=null;
SoapObject soapObject = new SoapObject(Competence.NAMESPACE, method_GetThisMonthDataByUsercodeDetail);
soapObject.addProperty("year", year);
soapObject.addProperty("month", month);
soapObject.addProperty("day", day);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.bodyOut = soapObject;
HttpTransportSE ht = new HttpTransportSE(Competence.URLs);
try {
ht.debug = true;
ht.reset();
ht.call(Competence.NAMESPACE+method_GetThisMonthDataByUsercodeDetail, envelope);
SoapObject result=(SoapObject)envelope.getResponse();
int count=result.getPropertyCount();
if(count>1){
list=new ArrayList<HashMap<String, String>>();
for (int i = 0; i < count; i=i+2) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("ItemTitle", result.getProperty(i).toString());
map.put("ItemText", result.getProperty(i+1).toString());
list.add(map);
}
}
} catch (Exception e) {
// TODO: handle exception
}
return list;
}
然后调用
//绑定数据
private void OnDataToListView(ArrayList<HashMap<String, String>> mylist){
if (mylist!=null) {
ListView list = (ListView) findViewById(R.id.MyListView);
SimpleAdapter mSchedule = new SimpleAdapter(DataManager.this,mylist,R.layout.my_listitem,new String[] {"ItemTitle", "ItemText"},new int[] {R.id.ItemTitle,R.id.ItemText});
list.setAdapter(mSchedule);
mSchedule=null;
list=null;
}
else {
Mesg("没有数据!");
}
}
以上android调用10086bank.com
PC端用到了柱状图和饼状图分析功能、使用的是jquery图表插件工具highcharts (点击进入可下载js包),
下面是主要的js代码:
if (temps != "") {
$("select[myenumid='" + myenumid + "']").parent().children().remove('div');
$("select[myenumid='" + myenumid + "']").removeClass();
$("select[myenumid='" + myenumid + "']").html("");
$("select[myenumid='" + myenumid + "']").append(temps);
$("select[myenumid='" + myenumid + "']").chosen();
}
myenumid = null;
temps = null;
for (var i = ; i < obj.length; i++) {
data1.push(obj[i].LAB);
data2.push(parseFloat(obj[i].DAT));
summoney = parseFloat(summoney) + parseFloat(obj[i].DAT);
var one = [];
one[] = obj[i].LAB;
one[] = parseInt(obj[i].DAT);
data.push(one);
one = null;
}
数据格式使用的是json格式,一个很厉害的数据传输格式。
页面中还用到children页面美化:
//填充
var isfull = 1;
function fulldata() {
if (isfull == 1) return;
var myenumid = "myenumid007";
$("select[myenumid='" + myenumid + "']").parent().children().remove('div');
$("select[myenumid='" + myenumid + "']").removeClass();
$("select[myenumid='" + myenumid + "']").html("");
$("select[myenumid='" + myenumid + "']").append("<option value='食'>食</option>");
$("select[myenumid='" + myenumid + "']").append("<option value='衣'>衣</option>");
$("select[myenumid='" + myenumid + "']").append("<option value='住'>住</option>");
$("select[myenumid='" + myenumid + "']").append("<option value='用'>用</option>");
$("select[myenumid='" + myenumid + "']").append("<option value='行'>行</option>");
$("select[myenumid='" + myenumid + "']").append("<option value='其它'>其它</option>");
$("select[myenumid='" + myenumid + "']").chosen(); $("select[myenumid='" + myenumid + "']").parent().children().children("a").attr("class", "chzn-single chzn-single-with-drop");
$("select[myenumid='" + myenumid + "']").parent().children().children("div").attr("style", "left:0px;top:24px");
$("select[myenumid='" + myenumid + "']").parent().children().children("div").children("div").children().focus();
$("select[myenumid='" + myenumid + "']").parent().children().children("div").children("ul").children("li:first-child").attr("class", "active-result result-selected highlighted");
myenumid = null;
}
代码实现起来是很容易的、
文采有限、写不出好的东西、但有一颗自信的心!
谢谢!
一个程序员一月的开销统计分析、(附上PC端和移动端android源码)的更多相关文章
- 如果你恨一个程序员 忽悠他去做iOS开发(戏谑篇)
.state { text-align: right; height: 16px; line-height: 16px; color: #999; padding-top: 5px; overflow ...
- 如果你恨一个程序员,忽悠他去做iOS开发
如果你恨一个程序员,忽悠他去做iOS开发.不管他背景是cobel还是 java,送他一本iOS开发的书.这种书最好是国人写的,容易以偏概全一点,相比洋鬼子的书,更容易学到皮毛.这叫舍不得孩子套不着狼, ...
- 每一个程序员需要了解的10个Linux命令
作为一个程序员,在软件开发职业生涯中或多或少会用到Linux系统,并且可能会使用Linux命令来检索需要的信息.本文将为各位开发者分享10个有用的Linux命令,希望对你会有所帮助. 以下就是今天我们 ...
- --专访雷果国: 从1.5K到18K 一个程序员的5年成长之路--
导语:今年三月份,在CSDN博客和新浪微博上有一篇<从1.5K到18K,一个程序员的5年成长之路>被众人分享和传阅,这篇博文首先介绍了作者自学之初薄弱的基础,然后通过流水账形式分享了那个从 ...
- 阅读<构建之法>第13、14、15、16、17章 与 《一个程序员的生命周期》读后感
第十三章 软件测试 这一章介绍了很多关于测试的方法,比如说单元测试,代码覆盖率测试,构建验证测试,验收测试等,我有一个很纠结的问题,如果我开发软件,是把这么多测试全做完,还是挑一些测试来进行呢?如 ...
- [Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …
[Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source - [Pyth ...
- 【转】每一个程序员需要了解的10个Linux命令
作为一个程序员,在软件开发职业生涯中或多或少会用到Linux系统,并且可能会使用Linux命令来检索需要的信息.本文将为各位开发者分享10个有用的Linux命令,希望对你会有所帮助. 以下就是今天我们 ...
- 如果恨一个程序员,忽悠他去做iOS开发
如果你恨一个程序员,忽悠他去做iOS开发.不管他背景是cobel还是 java,送他一本iOS开发的书.这种书最好是国人写的,容易以偏概全一点,相比洋鬼子的书,更容易学到皮毛.这叫舍不得孩子套不着狼, ...
- 作为一个程序员,你了解 win 上有哪些必装的软件吗
关于 win 的一些基础必知内容之前已经分享过,没有看过的可以戳此处→Windows 使用之那些你还不知道操作 新系统安装的第一个软件 Google Chrome 毫无疑问,作为程序员应该是首选的浏览 ...
随机推荐
- springboot集成shiro实现身份认证
github地址:https://github.com/peterowang/shiro pom文件 <dependencies> <dependency> <group ...
- specrate 与specspeed 的区别
What is the difference between a "rate" and a "speed" metric?There are several d ...
- CoordinatorLayout使用笔记
CoordinatorLayout的使用笔记 首先第一个子控件是AppBarLayout存放首部控件,里面放了一个CollapsingToolbarLayout.代码如下: <android.s ...
- Linux系统常用命令大全
一.系统信息操作(备注:红色标记为常用命令,以下类推,不再赘述) arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r ...
- 一键部署Drupal开源内容管理系统
https://market.azure.cn/Vhd/Show?vhdId=10897&version=12950 产品详情 产品介绍Drupal是一个由Dries Buytaert创立的自 ...
- 【UML】类图Class diagram(转)
http://blog.csdn.net/sds15732622190/article/details/48860711 前言 说到UML,相信大家就能立刻反应出其中的类图,为什么这么说呢,类图和用例 ...
- Android(java)学习笔记119:BroadcastReceiver之 短信发送的广播接收者
有时候,我们需要开发出来一个短信监听器,监听用户发送的短信记录,下面就是一个案例,这里同样需要使用广播机制. 下面同样是代码示例,MainActivity.java 和 activity_main. ...
- js各运算符的执行顺序
本文原链接:https://www.sojson.com/operation/javascript.html https://www.jianshu.com/p/d569c6ca1060 JavaSc ...
- bat文件设置环境变量
::获取管理员权限 @echo off%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute(" ...
- 第1节 flume:12、flume的load_balance实现机制
1.5.flume的负载均衡load balancer 负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法.Load balancing Sink Processor 能够实现 l ...