图片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;
}

代码实现起来是很容易的、

PAK下载

PC端(100086bank.com)

文采有限、写不出好的东西、但有一颗自信的心!

谢谢!

一个程序员一月的开销统计分析、(附上PC端和移动端android源码)的更多相关文章

  1. 如果你恨一个程序员 忽悠他去做iOS开发(戏谑篇)

    .state { text-align: right; height: 16px; line-height: 16px; color: #999; padding-top: 5px; overflow ...

  2. 如果你恨一个程序员,忽悠他去做iOS开发

    如果你恨一个程序员,忽悠他去做iOS开发.不管他背景是cobel还是 java,送他一本iOS开发的书.这种书最好是国人写的,容易以偏概全一点,相比洋鬼子的书,更容易学到皮毛.这叫舍不得孩子套不着狼, ...

  3. 每一个程序员需要了解的10个Linux命令

    作为一个程序员,在软件开发职业生涯中或多或少会用到Linux系统,并且可能会使用Linux命令来检索需要的信息.本文将为各位开发者分享10个有用的Linux命令,希望对你会有所帮助. 以下就是今天我们 ...

  4. --专访雷果国: 从1.5K到18K 一个程序员的5年成长之路--

    导语:今年三月份,在CSDN博客和新浪微博上有一篇<从1.5K到18K,一个程序员的5年成长之路>被众人分享和传阅,这篇博文首先介绍了作者自学之初薄弱的基础,然后通过流水账形式分享了那个从 ...

  5. 阅读<构建之法>第13、14、15、16、17章 与 《一个程序员的生命周期》读后感

    第十三章   软件测试 这一章介绍了很多关于测试的方法,比如说单元测试,代码覆盖率测试,构建验证测试,验收测试等,我有一个很纠结的问题,如果我开发软件,是把这么多测试全做完,还是挑一些测试来进行呢?如 ...

  6. [Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …

    [Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source - [Pyth ...

  7. 【转】每一个程序员需要了解的10个Linux命令

    作为一个程序员,在软件开发职业生涯中或多或少会用到Linux系统,并且可能会使用Linux命令来检索需要的信息.本文将为各位开发者分享10个有用的Linux命令,希望对你会有所帮助. 以下就是今天我们 ...

  8. 如果恨一个程序员,忽悠他去做iOS开发

    如果你恨一个程序员,忽悠他去做iOS开发.不管他背景是cobel还是 java,送他一本iOS开发的书.这种书最好是国人写的,容易以偏概全一点,相比洋鬼子的书,更容易学到皮毛.这叫舍不得孩子套不着狼, ...

  9. 作为一个程序员,你了解 win 上有哪些必装的软件吗

    关于 win 的一些基础必知内容之前已经分享过,没有看过的可以戳此处→Windows 使用之那些你还不知道操作 新系统安装的第一个软件 Google Chrome 毫无疑问,作为程序员应该是首选的浏览 ...

随机推荐

  1. iOS - NSString 封装

    在实际项目开发过程中,发现字符串使用频率还是非常高的,NSString提供了很多相关的API,但是在开发过程中发现很多业务功能都是相同的.因此根据在开发过程中遇到的字符串使用场景,进行了简单封装.具体 ...

  2. 初识AutoCompleteTextView

    AutoCompleteTextView自动补全框继承自TextView和EditView,通过一个下拉框的形式可以补全信息. 可以通过setThreshold()方法指定用户输入多少个字符后开始显示 ...

  3. 对卷积(convolution)的理解

    参考文章 https://www.jianshu.com/p/daaaeb718aed https://blog.csdn.net/bitcarmanlee/article/details/54729 ...

  4. UVA 11134 FabledRooks 传说中的车 (问题分解)

    摘要:贪心,问题分解. 因为行列无关,所以这个二维问题可以分解成两个一维问题. 优先队列实现:类似区间点覆盖的问题,先按照左端点排序,相同然后在按右端点排序(灵活性小的优先选).最优的选法,当然是要使 ...

  5. SG函数入门&&HDU 1848

    SG函数 sg[i]为0表示i节点先手必败. 首先定义mex(minimal excludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非负整数.例如mex{0,1,2,4}=3. ...

  6. HTML之元素分类

    一.元素展示类型 在HTML本身定义了很多元素,这些元素在网页上展示的时候都会有自己的默认状态,例如有些元素在默认状态下对高宽的属性设置不起作用,有些元素都默认情况下都独立一行显示,这种现象我们称之为 ...

  7. mysql 速度检索

    授权GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'127.0.0.1' IDENTIFIED BY 'zabbixpwd' WITH GRANT OPTI ...

  8. windbg双机调试配置

    环境 虚拟机 win7 Pro x86 vmware 12 windbg x86 虚拟机win7配置 管理员权限运行cmd.exe 然后输入以下命令: bcdedit /? bcdedit /enum ...

  9. IOS使用Jenkins进行持续集成

    本文主要讲述在开发过程中,提高工作效率而进行的IOS-Jenkins的持续集成. 背景 平时我们开发完成IOS项目,需要打包给测试人员进行测试.其中的过程需要重复进行:修改配置项--编译---连接设备 ...

  10. JS数据结构与算法--单向链表

    链表结构:链表中每个元素由一个存储元素本身的节点和一个指向下一元素的引用组成.如下所示(手画的,比较丑,懒得用工具画了,嘻嘻) 1.append方法,向链表末尾插入一个节点 2.insert(posi ...