zoukankan      html  css  js  c++  java
  • Android应用之个人应用软件开发(2)【签到功能和记账】

    最近白天都有点忙,明天还要上班,恼火啊···现在才有空把这两篇文章发出来···

    上次说了一个思路,那首先就是把UI弄出来。

    android给我们提供了几种数据存储的方法:

    1,Shared Preferences 2,sqlite database

    利用SharedPreference来做一些简单的小功能还是很不错的。

    下面我们来实现一个签到的功能。

    如图:

          先来看看签到功能:

          主要就是进入理财界面有个类似提示今日是否进行过操作的记录,主要目的就是提醒是否今天已经进行过添加记账,而且在界面UI上面多弄这样一个简单的小功能也是很好看很不错的。呵呵,做了两张小图,一个是“签到” 一个是“未签到” 那接下来就看看代码怎么写的。

         首先定义一下共享优先数据基础字段:

        

         //定义共享优先数据及基础字段
    private String MY_RMBCost ="MY_RMBCost";

    private String TodayTime ="TodayTime";

         然后就是处理签到的功能:

    Time t = new Time();
    t.setToNow();
    int lastmonth = t.month + 1 ;
    final String str = t.year + "" + lastmonth + "" + t.monthDay + "";


    final String nowtime =my_rmb_data.getString(TodayTime, "").toString();

    if(nowtime.equals(str)==true)
    {
    tv_time.setText(
    "日期:"+ nowtime +"已签到!");
    bt_qiandao.setBackgroundResource(R.drawable.yqd);
    }
    else
    {
    tv_time.setText(
    "日期:"+ str);
    bt_qiandao.setBackgroundResource(R.drawable.qd);
    }

    页面的全部代码:

    import android.app.Activity;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.text.format.Time;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.TextView;
    import android.widget.Toast;
    public class myrmbmanage extends Activity {

    //定义共享优先数据及基础字段
    private String MY_RMBCost ="MY_RMBCost";

    private String TodayTime ="TodayTime";

    public void onCreate(Bundle savedInstanceState ){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.myrmbmanage);
    final Button bt_qiandao = (Button)findViewById(R.id.bt_qiandao);
    final TextView tv_time = (TextView)findViewById(R.id.tv_qiandaotime);
    final Button bt_jz = (Button)findViewById(R.id.bt_jz);

    //读取共享数据
    SharedPreferences my_rmb_data = getSharedPreferences(MY_RMBCost, 0);

    Time t
    = new Time();
    t.setToNow();
    int lastmonth = t.month + 1 ;
    final String str = t.year + "" + lastmonth + "" + t.monthDay + "";


    final String nowtime =my_rmb_data.getString(TodayTime, "").toString();

    if(nowtime.equals(str)==true)
    {
    tv_time.setText(
    "日期:"+ nowtime +"已签到!");
    bt_qiandao.setBackgroundResource(R.drawable.yqd);
    }
    else
    {
    tv_time.setText(
    "日期:"+ str);
    bt_qiandao.setBackgroundResource(R.drawable.qd);
    }

    //按钮操作部分

    //签到功能
    bt_qiandao.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
    // TODO Auto-generated method stub
    SharedPreferences my_rmb_data = getSharedPreferences(MY_RMBCost, 0);
    if(my_rmb_data.getString(TodayTime, "").toString().equals(str)==true)
    {
    Toast.makeText( myrmbmanage.
    this , "今日已签到!", Toast.LENGTH_SHORT).show();
    }
    else
    {
    my_rmb_data.edit()
    .putString(TodayTime, str)
    .commit();
    tv_time.setText(
    "日期:"+ str +"已签到!");
    bt_qiandao.setBackgroundResource(R.drawable.yqd);
    Toast.makeText( myrmbmanage.
    this , "签到成功!", Toast.LENGTH_SHORT).show();
    }
    }
    });

    //记账
    bt_jz.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent intent = new Intent( myrmbmanage.this, todayspend.class);
    startActivity(intent);
    }
    });

    }
    }

      签到功能只用到了 SharedPreferences ,而且如果我们拥有的是大量的数据,并且要随掉随用的方法那就得用到Sqlite database了。下一节说一下把这些和数据相关的东西分层,毕竟一个规整干净的代码才是我们想见到的。

      然后再来看一下记账功能的UI:

       上半部分同样继承了签到功能,还有把详细需要填写开销表单列出来了。简单易用就是我们想要的功能,我只想在以后我想记账的时候达到一键添加就可以纪录我今天的理财记账。下半部分主要显示了今日和昨日的开销信息,这样也有一个对比,昨天和今天的开资就一目了然了,哈哈。最重要的是下拉列表,有一个很重要的功能就是我们需要下拉列表显示这个月已经添加账目的日期,并且选中之后赋值到表单中可以进行修改编辑。也达到了查询任意一天的账目开销情况。那么我们整个UI就基本具有了这样预期的功能了。下一节我们就来实现这个功能。

      关于Sqlite database数据访问的东西下一节贴出来,也希望大家相互交流,如果有能改进的地方大家相互学习。

  • 相关阅读:
    C#LPT端口连接热敏打印机发送指令
    c# 普通打印机大致有三种方法(非热敏打印机及lpt1并口指令控制型)
    C#直接发送打印机命令到打印机(这里测试的是直接弹出钱箱操作)
    c#操作access,update语句不执行的解决办法
    element-ui dialog组件添加可拖拽位置 可拖拽宽高[转]
    [JavaScript] js实现简单的代码运行框【转】
    HTML5 drag & drop 拖拽与拖放简介[转]
    webpack 单独打包指定JS文件(转)
    跳转地图并定位
    基于Cesium实现逼真的水特效[转]
  • 原文地址:https://www.cnblogs.com/zisou/p/Android_03.html
Copyright © 2011-2022 走看看