记账本
今天了解了安卓程序开发的内容,根据示例练习理解安卓与以往学习的内容的不同之处,也尝试编程了记账本的内容。
在content_main.xml中添加
<ListView android:id="@+id/lv_main" android:layout_width="wrap_content" android:layout_height="wrap_content" />
listview适配器
public class CostListAdapter extends BaseAdapter { private List<CostBean> mList; private Context mContext; private LayoutInflater mLayoutInflater; public CostListAdapter(Context context, List<CostBean> list){ mContext=context; mList=list; mLayoutInflater=LayoutInflater.from(context); } @Override public int getCount() { return mList.size(); } @Override public Object getItem(int position) { return mList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if (convertView==null){ viewHolder=new ViewHolder(); convertView=mLayoutInflater.inflate(R.layout.list_item,null); viewHolder.mTvCostTitle= (TextView) convertView.findViewById(R.id.tv_title); viewHolder.mTvCostDate= (TextView) convertView.findViewById(R.id.tv_date); viewHolder.mTvCostMoney= (TextView) 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); return convertView; } private static class ViewHolder{ public TextView mTvCostTitle; public TextView mTvCostDate; public TextView mTvCostMoney; } }
list_item的布局代码
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="80dp"> <TextView android:id="@+id/tv_title" android:layout_width="150dp" android:layout_height="80dp" android:layout_marginLeft="10dp" android:layout_alignParentLeft="true" android:singleLine="true" android:ellipsize="marquee" android:textSize="35sp" android:gravity="center" android:text="costTitle"/> <TextView android:id="@+id/tv_date" android:layout_width="wrap_content" android:layout_height="80dp" android:gravity="center" android:textSize="20sp" android:layout_marginLeft="15dp" android:layout_toRightOf="@+id/tv_title" android:text="costDate"/> <TextView android:id="@+id/tv_cost" android:layout_width="wrap_content" android:layout_height="80dp" android:gravity="center" android:layout_alignParentRight="true" android:textSize="30sp" android:layout_marginRight="20dp" android:text="30"/> </RelativeLayout>
实体Bean对象
public class CostBean implements Serializable { public String costTitle; public String costDate; public String costMoney; }
数据库中的增删改查
public class DatabaseHelper extends SQLiteOpenHelper { public static final String COST_DATE = "cost_date"; public static final String COST_TITLE = "cost_title"; public static final String COST_MONEY = "cost_money"; public static final String COST = "cost"; public DatabaseHelper(Context context) { super(context, "daily", null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table if not exists cost("+ "id integer primary key, "+ "cost_title varchar, "+ "cost_date varchar, "+ "cost_money varchar)"); } public void insertCost(CostBean costBean){ SQLiteDatabase database=getWritableDatabase(); ContentValues cv=new ContentValues(); cv.put(COST_TITLE,costBean.costTitle); cv.put(COST_DATE,costBean.costDate); cv.put(COST_MONEY,costBean.costMoney); database.insert(COST,null,cv); } public void deleteAllData(){ SQLiteDatabase database=getWritableDatabase(); database.delete(COST,null,null); } public Cursor getAllCostData(){ SQLiteDatabase database=getWritableDatabase(); return database.query(COST,null,null,null,null,null,COST_DATE + " ASC"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
先根据了已有的代码进行了解,记账本的具体实现方法还在学习中。

浙公网安备 33010602011771号