android实战开发记账本App,android开发实战-记账本APP(一)

记账本开发流程:

对于一个记账本的初步开发而言,我实现的功能有:

①实现一个记账本的页面

②可以添加数据并更新到页面中

③可以将数据信息以图表的形式展现

(一)首先,制作一个记账本的页面。

①在系统自动创建的content_main.xml文件中添加listview

②创建一个list_item.xml来实现见记账本的页面布局,一共需要三个组件,一个是记账信息,记账时间,记账金额

xml version="1.0" encoding="utf-8"?>

RelativeLayout>

页面截图:

fe968a5ef5102a401e841e192d20c14f.png

③编写适配器并进行测试,因此我们需要建立一个CostListAdapter.java,还需要建立我们的bean对象,因此需要在建立一个CostBean来存储我们的

记账信息。

packagecom.example.xlfbook;importandroid.content.Context;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.view.ViewGroup;importandroid.widget.BaseAdapter;importandroid.widget.TextView;importjava.util.List;public class CostListAdapter extendsBaseAdapter {private Listmlist;privateContext mContext;privateLayoutInflater mlayoutInflater;public CostListAdapter(Context context,Listlist){

mContext=context;

mlist=list;

mlayoutInflater=LayoutInflater.from(context);

}

@Overridepublic intgetCount() {returnmlist.size();

}

@Overridepublic Object getItem(intposition) {returnmlist.get(position);

}

@Overridepublic long getItemId(intposition) {returnposition;

}

@Overridepublic View getView(intposition, View convertView, ViewGroup parent) {

ViewHolder viewHolder;if(convertView==null)

{

viewHolder=newViewHolder();

convertView=mlayoutInflater.inflate(R.layout.list_item,null);

viewHolder.mTvCostTitle=convertView.findViewById(R.id.tv_title);

viewHolder.mTvCostDate=convertView.findViewById(R.id.tv_date);

viewHolder.mTvCostMoney=convertView.findViewById(R.id.tv_cost);

convertView.setTag(viewHolder);

}else{

viewHolder=(ViewHolder) convertView.getTag();

}

CostBean bean=mlist.get(position);

viewHolder.mTvCostTitle.setText(bean.costTitle);

viewHolder.mTvCostDate.setText(bean.costDate);

viewHolder.mTvCostMoney.setText(bean.costMoney);returnconvertView;

}private static classViewHolder{publicTextView mTvCostTitle;publicTextView mTvCostDate;publicTextView mTvCostMoney;

}

}

CostBean,这里implements的意义是为了一会的intent数据传递。

packagecom.example.xlfbook;importjava.io.Serializable;public class CostBean implementsSerializable {publicString costTitle;publicString costDate;publicString costMoney;

@OverridepublicString toString() {return "CostBean{" +

"costTitle='" + costTitle + '\'' +

", costDate='" + costDate + '\'' +

", costMoney='" + costMoney + '\'' +

'}';

}publicString getCostDate() {returncostDate;

}public voidsetCostDate(String costDate) {this.costDate =costDate;

}publicString getCostMoney() {returncostMoney;

}public voidsetCostMoney(String costMoney) {this.costMoney =costMoney;

}publicString getCostTitle() {returncostTitle;

}public voidsetCostTitle(String costTitle) {this.costTitle =costTitle;

}

}

④再然后在主程序中获取ListView并设置adapter,并进行适配器的测试。

(二)进行数据库的操作

①建立数据库实现增/删/查的方法实现。

packagecom.example.xlfbook;importandroid.content.ContentValues;importandroid.content.Context;importandroid.database.Cursor;importandroid.database.sqlite.SQLiteDatabase;importandroid.database.sqlite.SQLiteOpenHelper;importandroidx.annotation.Nullable;public class DatabaseHelper extendsSQLiteOpenHelper {public static final String COST_TITLE = "cost_title";public static final String COST_DATE = "cost_date";public static final String COST_MONEY = "cost_money";public static final String IMOOC_COST = "imooc_cost";publicDatabaseHelper(@Nullable Context context) {super(context, "imooc_daily", null, 1);

}

@Overridepublic voidonCreate(SQLiteDatabase db) {

db.execSQL("create table if not exists IMOOC_COST("+

"id integer primary key, "+

"cost_title varchar, "+

"cost_date varchar, "+

"cost_money varchar)");

}public voidinsertCost(CostBean costBean)

{

SQLiteDatabase database=getWritableDatabase();

ContentValues cv=newContentValues();

cv.put(COST_TITLE,costBean.costTitle);

cv.put(COST_DATE,costBean.costDate);

cv.put(COST_MONEY,costBean.costMoney);

database.insert(IMOOC_COST,null,cv);

}publicCursor getAllCostData(){

SQLiteDatabase database=getWritableDatabase();return database.query("IMOOC_COST",null,null,null,null,null,"COST_DATE "+" ASC");

}public voiddeleteAllData(){

SQLiteDatabase database=getWritableDatabase();

database.delete("IMOOC_COST",null,null);

}

@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, intnewVersion) {

}

}

在这里新建了一个“imooc_daily”的数据库和“imooc_cost”表,并对他们以及数据信息(cost_title,cost_date,cost_money)进行了常量定义,以便其他程序的使用,并写了简单的增加、删除和查询数据的功能。

今天开发就到这里,明天继续开发实现“添加页面的显示与更新”以及“图表的实现”,最后会发布到github里。

文章来源: www.cnblogs.com,作者:清风紫雪,版权归原作者所有,如需转载,请联系作者。

原文链接:https://www.cnblogs.com/xiaofengzai/p/12258104.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值