最近白天都有点忙,明天还要上班,恼火啊···现在才有空把这两篇文章发出来···
上次说了一个思路,那首先就是把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数据访问的东西下一节贴出来,也希望大家相互交流,如果有能改进的地方大家相互学习。