一、收入明细界面

1、界面效果

2、前期准备

2.1 首先添加 RecyclerView 的依赖 展开 Android 的工程目录结构,在 app 下方,打开 build.gradle 文件,输入依 赖,如下:

implementation 'com.android.support:recyclerview-v7:29.0.3'

3、收入明细布局界面 activity_in_come_detail.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:background="@drawable/in_detail_bg"tools:context=".activity.InComeDetailActivity"><androidx.recyclerview.widget.RecyclerViewandroid:id="@+id/recy_view_indetail"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="120dp"android:layout_marginLeft="30dp"android:layout_marginRight="30dp"android:layout_marginBottom="40dp"/>
</LinearLayout>

4、收入明细类文件 InComeDetailActivity.java

public class InComeDetailActivity extends AppCompatActivity {
//1 定义对象RecyclerView recy_view;MyDBHelper mhelper;SQLiteDatabase db;List<IncomeBean> arr1=new ArrayList();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_in_come_detail);//2 绑定控件initView();//3 准备数据initData();//4 设计每一行的子布局//5 定义适配器: 数据和子布局关联起来(桥梁的作用)IncomeAdapter adapter=new IncomeAdapter(InComeDetailActivity.this,arr1);//6 将适配器和布局管理器加载到控件当中StaggeredGridLayoutManager st=new StaggeredGridLayoutManager(StaggeredGridLayoutManager.VERTICAL,1);recy_view.setLayoutManager(st);recy_view.setAdapter(adapter);}//2 绑定控件----------------代码private void initView() {recy_view=findViewById(R.id.recy_view_indetail);mhelper=new MyDBHelper(InComeDetailActivity.this);db=mhelper.getWritableDatabase();}//3 准备数据----------------代码private void initData() {//从数据库查询所有的新增收入信息,取出数据Cursor cursor=db.rawQuery("select * from in_come",null);while(cursor.moveToNext()){int myid=cursor.getInt(cursor.getColumnIndex("id"));double mymoney=cursor.getDouble(cursor.getColumnIndex("inmoney"));String mytime=cursor.getString(cursor.getColumnIndex("intime"));String mytype=cursor.getString(cursor.getColumnIndex("intype"));String mypayer=cursor.getString(cursor.getColumnIndex("inpayer"));String myremark=cursor.getString(cursor.getColumnIndex("inremark"));IncomeBean incomeBean=new IncomeBean( myid,mymoney,mytime,mytype,mypayer,myremark);arr1.add(incomeBean);}}
}

5、javabean 类文件:IncomeBean.java

选择工程的包名——右击——new——package——在目前出现的内容后面追加输入 bean——单击 ok 按钮,便可生成 bean 文件夹。如下图:

选择 bean 文件夹,右击——new——java class——输入类名: IncomeBean——单击 ok 按钮。打卡 javabean 文件夹,输入代码如下:

package com.example.zsfinancialmanage.bean;
public class IncomeBean {private int id;private double money;private String time;private String type;private String payer;private String remark;public IncomeBean(int id, double money, String time, String type, String payer, String remark) {this.id = id;this.money = money;this.time = time;this.type = type;this.payer = payer;this.remark = remark;}public int getId() {return id;}public void setId(int id) {this.id = id;}public double getMoney() {return money;}public void setMoney(double money) {this.money = money;}public String getTime() {return time;}public void setTime(String time) {this.time = time;}public String getType() {return type;}public void setType(String type) {this.type = type;}public String getPayer() {return payer;}public void setPayer(String payer) {this.payer = payer;}public String getRemark() {return remark;}public void setRemark(String remark) {this.remark = remark;}
}

6、收入明细界面每一行的 item 子布局 recy_item_in.xml

选择 layout——new——Layout Resource File——输入名称 recy_item_in——单击 ok 按钮。

子布局界面布局如下:

子界面代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:orientation="horizontal"android:layout_height="wrap_content">
<ImageViewandroid:layout_width="50dp"android:layout_height="50dp"android:src="@drawable/incomeicon"/><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"android:layout_weight="1"android:padding="5dp"><TextViewandroid:id="@+id/item_payer_in"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="付款方"/><TextViewandroid:id="@+id/item_type_in"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="类型"/><TextViewandroid:id="@+id/item_time_in"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="时间"/><TextViewandroid:id="@+id/item_remark_in"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="备注"/></LinearLayout><TextViewandroid:id="@+id/item_money_in"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="金额"android:textSize="25sp"android:textColor="#ff0000"android:textStyle="bold"android:layout_gravity="center_vertical"/>
</LinearLayout>

6、适配器 IncomeAdapter.java

public class IncomeAdapter extends
RecyclerView.Adapter<IncomeAdapter.ViewHolder> {
Context mcontext;
List<IncomeBean> arr2;public IncomeAdapter(Context mcontext, List<IncomeBean> arr2) {this.mcontext = mcontext;this.arr2 = arr2;}//用于创建 ViewHolder 实例@Overridepublic IncomeAdapter.ViewHolder onCreateViewHolder( ViewGroup parent, int viewType) {View view= LayoutInflater.from(mcontext).inflate(R.layout.recy_item_in,parent,false);ViewHolder mholder=new ViewHolder(view);return mholder;}//对 RecyclerView 子项进行赋值的@Overridepublic void onBindViewHolder(IncomeAdapter.ViewHolder mholder, int position) {IncomeBean incomeBean=arr2.get(position);mholder.item_payer.setText("收款-来自"+incomeBean.getPayer());mholder.item_type.setText(incomeBean.getType());mholder.item_time.setText(incomeBean.getTime());mholder.item_remark.setText(incomeBean.getRemark());mholder.item_money.setText("+"+incomeBean.getMoney());}//recyclerView 一共有多少子项@Overridepublic int getItemCount() {return arr2.size();}public class ViewHolder extends RecyclerView.ViewHolder{TextView item_payer,item_type,item_time,item_remark,item_money;public ViewHolder( View itemView) {super(itemView);item_payer=itemView.findViewById(R.id.item_payer_in);item_type=itemView.findViewById(R.id.item_type_in);item_time=itemView.findViewById(R.id.item_time_in);item_remark=itemView.findViewById(R.id.item_remark_in);item_money=itemView.findViewById(R.id.item_money_in);}}
}

理财通app的设计与实现(三)相关推荐

  1. 理财通app的设计与实现(一)

    一.欢迎界面的设计与实现 1.界面效果图 2.前期准备工作 (1)背景图片 (2)样式文件 (3)样式文件 1:btn_style_one.xml <?xml version="1.0 ...

  2. 理财通app的设计与实现(二)

    一.主界面 1.界面效果 2.准备工作 (1)在工程包名下面建立一个文件夹 选择工程的包名--右击--new--package--在目前出现的内容后面追加输入 activity--单击 ok 按钮,便 ...

  3. 理财通app的设计与实现(四)

    一.数据分析界面 1.界面效果 2.前期准备 2.1 首先添加 AndroidMPChart 的依赖 (1)在素材文件夹中,选择 jar 包文件:MPAndroidChart-v3.0.3.jar,复 ...

  4. 理财通app的设计与实现(六)

    一.支出管理界面 1.界面效果 2.前期准备 2.1 展开工程中的 bean 文件夹,打开收入信息类 IncomeBean 文件,添加 implements Serializable 即可.代码如下, ...

  5. 理财通app的设计与实现(五)

    一.收入管理界面 1.界面效果 2.前期准备 2.1 展开工程中的 bean 文件夹,打开收入信息类 IncomeBean 文件,添加 implements Serializable 即可.代码如下, ...

  6. android收入管理系统,毕业设计(论文)-基于Android系统的家庭理财通软件的设计——收入管理模块.docx...

    PAGE 河北农业大学信息学院 本科毕业论文 题 目:基于Android系统的家庭理财通软件的 设计--收入管理模块 学 院: 信息科学与技术学院 专业班级: 计算机科学与技术0902班 学 号: 二 ...

  7. Eclipse开发的家庭理财通APP

    家庭理财通使用说明书 配置源程序 将程序导入到Eclipse中,并发布运行 (1)将"光盘\MR\源码\第19章\AccountMS"文件夹拷贝到Eclipse的工作空间中. (2 ...

  8. 毕业论文选题基于Web网站或Android APP的设计与实现

    一.基于Web的实验中心工作管理网站的设计与实现 二.基于Android的上课提醒APP的设计与实现 三.基于Android的健身管理APP的设计与实现 四.高校讲座信息APP的设计与实现 五.文本朗 ...

  9. android 家庭理财软件 需求分析,基于Android的家庭理财通的设计与实现.docx

    摘要:近年来,基于Android系统来开发的便携式的智能手机以惊人的速度发展开来,智能手机已经渗透到我们的生活.学习.工作的每一个角落.随着Android手机操作系统的大热,基于Android的软件也 ...

最新文章

  1. 训练 GPT-3,为什么原有的深度学习框架吃不消?
  2. 基于Nginx的负载均衡
  3. 机器学习-分类算法-模型选择与调优09
  4. java会员卡的绑定和解绑_SpringMVC源码之参数解析绑定原理
  5. HDU 3400 Line belt【三分法】
  6. html浮动炫酷样式,jQuery和CSS3炫酷表单浮动标签特效
  7. Linux 手势识别,基于嵌入式Linux的手势识别技术研究
  8. 解决远程桌面无法复制黏贴
  9. vuex获取php数据,vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
  10. new ext.toolbar控制按钮间距_消防控制室现场验收存在问题图解
  11. 【Java】抽象类和接口的区别
  12. Ubuntu 20.04连接蓝牙适配器5.0版本
  13. MFC用户名和密码的登录界面设计
  14. linkMap深度解析
  15. 机器学习方法:回归(一):线性回归Linear regression
  16. chatgpt赋能python:Python中cwd的介绍与使用
  17. 杨卫华:新浪微博的架构发展历程
  18. 03 朴素贝叶斯方法
  19. python_speech_features库学习
  20. 使用SQL实现广告的精准投放

热门文章

  1. 在ESNP中还原内网私接小路由器导致用户无法上网场景
  2. 保弘实业|理财要有合理的计划
  3. 牛客-练习赛101-推理小丑
  4. 自建DHCP TFTP服务 用PXE启动实现无人值守安装Centos6
  5. 数据库------绪论+关系数据库及其运算基础
  6. 你想学习吗?你会学习吗?你知道该如何学习吗?学习之道-读书笔记
  7. 【无标题】灵遁者沉思:每个人都有“第三只眼睛”
  8. 同比,环比,年累计值算法
  9. Android jenkins 自动化打包
  10. 解决 Chrome 浏览器地址栏字体发虚模糊