Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3006232
  • 博文数量: 523
  • 博客积分: 11908
  • 博客等级: 上将
  • 技术积分: 5475
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-03 15:50
文章分类

全部博文(523)

文章存档

2019年(3)

2013年(4)

2012年(71)

2011年(78)

2010年(57)

2009年(310)

分类: LINUX

2012-01-17 12:45:38

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

上次说了一个思路,那首先就是把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数据访问的东西下一节贴出来,也希望大家相互交流,如果有能改进的地方大家相互学习。

阅读(1010) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~