一、主界面

1、界面效果

2、准备工作

(1)在工程包名下面建立一个文件夹 选择工程的包名——右击——new——package——在目前出现的内容后面追加输入 activity——单击 ok 按钮,便可生成 activity 文件夹。

(2) 在 activity 文件夹中建立 6 个子页面 选择 activity 文件夹,右击——new——activity——Empty Activity——输入类 名:InComeActivity——单击 ok 按钮。

3、主界面布局 activity_main.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/welcomebg"tools:context=".view.MainActivity"><ImageButtonandroid:layout_width="match_parent"android:layout_height="250dp"android:background="@drawable/main_top"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="40dp"android:gravity="center"><Buttonandroid:id="@+id/bt_newincome_main"android:layout_width="90dp"android:layout_height="90dp"android:background="@drawable/new_pay_in"android:layout_marginRight="50dp"/><Buttonandroid:id="@+id/bt_incomedetail_main"android:layout_width="90dp"android:layout_height="90dp"android:background="@drawable/my_pay_in"android:layout_marginRight="50dp"/><Buttonandroid:id="@+id/bt_newpay_main"android:layout_width="90dp"android:layout_height="90dp"android:background="@drawable/new_pay_out" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="20dp"android:gravity="center"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="新增收入"android:textSize="15sp"android:textColor="#ffffff"android:layout_marginRight="80dp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="收入明细"android:textSize="15sp"android:textColor="#ffffff"android:layout_marginRight="80dp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="新增支出"android:textSize="15sp"android:textColor="#ffffff"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="40dp"android:gravity="center"><Buttonandroid:id="@+id/bt_paydetail_main"android:layout_width="90dp"android:layout_height="90dp"android:background="@drawable/my_pay_out"android:layout_marginRight="50dp"/><Buttonandroid:id="@+id/bt_dataanalyse_main"android:layout_width="90dp"android:layout_height="90dp"android:background="@drawable/data_administration"android:layout_marginRight="50dp"/><Buttonandroid:id="@+id/bt_syssetting_main"android:layout_width="90dp"android:layout_height="90dp"android:background="@drawable/sys_setting" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="20dp"android:gravity="center"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="支出明细"android:textSize="15sp"android:textColor="#ffffff"android:layout_marginRight="80dp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="数据分析"android:textSize="15sp"android:textColor="#ffffff"android:layout_marginRight="80dp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="系统设置"android:textSize="15sp"android:textColor="#ffffff"/></LinearLayout>
</LinearLayout>

4、主界面类文件 MainActivity.java

public class MainActivity extends AppCompatActivity {
//定义对象Button bt_newincome,bt_incomedetail,btn_newpay,btn_paydetail,bt_dataanalyse,btn_setting;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 绑定控件initView();//按钮单击事件btnOnClick();}// 绑定控件--------------------------代码private void initView() {bt_newincome=findViewById(R.id.bt_newincome_main);bt_incomedetail=findViewById(R.id.bt_incomedetail_main);btn_newpay=findViewById(R.id.bt_newpay_main);btn_paydetail=findViewById(R.id.bt_paydetail_main);bt_dataanalyse=findViewById(R.id.bt_dataanalyse_main);btn_setting=findViewById(R.id.bt_syssetting_main);}//按钮单击事件-------------------代码private void btnOnClick() {bt_newincome.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent=new Intent(MainActivity.this, NewInComeActivity.class);startActivity(intent);}});bt_incomedetail.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent=new Intent(MainActivity.this, InComeDetailActivity.class);startActivity(intent);}});btn_newpay.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent=new Intent(MainActivity.this, NewPayActivity.class);startActivity(intent);}});btn_paydetail.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent=new Intent(MainActivity.this, PayDetailActivity.class);startActivity(intent);}});bt_dataanalyse.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent=new Intent(MainActivity.this, DataAnalyseActivity.class);startActivity(intent);}});btn_setting.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent=new Intent(MainActivity.this, SysSettingActivity.class);startActivity(intent);}});}
}

5、代码讲解

项目中使用到了ImageButton,但是给图片设置具体尺寸后发现还是原来的大小,后来将ImageButton变成ImageView就可以了。首先我们从源码的角度来看一下两者的区别。

ImageView继承的是View         ImageButton继承的是ImageView

我们来分析一下几种不同情况下两者之间的差别。

1、两者均不设置具体的宽高

其显示效果没有什么差别。

2、设置了具体的宽高。

ImageView会按照具体的宽高尺寸发生变化,但是ImageButton只会显示图片的原始像素大小。如果给ImageButton设置了scaleType属性就可以达成ImageView的效果,但是图片会失真。

3、设置背景选择器。

ImageView要想使选择器效果生效,需要让控件获得焦点。需要加上android:clickable=true;

ImageButton就不需要处理,因为在源码中ImageButton的构造函数中已经设置过了setFocusable(true)。

4、设置background无具体宽高。

效果一样。

5、设置background有具体宽高。

效果一样。与src不同的是,两者均随着具体宽高发生改变。

二、新增收入界面

1、界面效果

2、 前期准备

(1)为 spinner 控件准备数据

(1)在 values 下新建一个 xml 文件,如下图:

(2)在文件中添加两个字符串数

(3)在布局文件用 entries 属性引用字符串数组

(2)在数据库类文件中添加收入表和支出表

//创建一个收入表db.execSQL("create table in_come(id integer primary key autoincrement,inmoney double,intime varchar(20),intype varchar(30),inpayer varchar(100),inremark varchar(500))");
//创建一个支出表
db.execSQL("create table out_pay(id integer primary key autoincrement,outmoney double,outtime varchar(20),outtype varchar(30),outpayee varchar(100),outremark varchar(500))");

3、新增收入布局界面 activity_new_income.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/new_income_bg"tools:context=".activity.NewInComeActivity"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="220dp"android:layout_marginLeft="30dp"android:layout_marginRight="30dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="金 额:"android:textColor="#000000"android:textSize="20sp"android:textStyle="bold"/><EditTextandroid:id="@+id/et_money_newin"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="0.00"android:textColor="#000000"android:textSize="20sp"android:textStyle="bold"android:gravity="center"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="10dp"android:layout_marginLeft="30dp"android:layout_marginRight="30dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="日 期:"android:textColor="#000000"android:textSize="20sp"android:textStyle="bold"/><EditTextandroid:id="@+id/et_time_newin"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="2020-05-12"android:textColor="#000000"android:textSize="20sp"android:textStyle="bold"android:gravity="center"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="10dp"android:layout_marginLeft="30dp"android:layout_marginRight="30dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="类 型:"android:textColor="#000000"android:textSize="20sp"android:textStyle="bold"/><Spinnerandroid:id="@+id/sp_type_newin"android:layout_width="match_parent"android:layout_height="wrap_content"android:entries="@array/incometype"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="10dp"android:layout_marginLeft="30dp"android:layout_marginRight="30dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="付款方:"android:textColor="#000000"android:textSize="20sp"android:textStyle="bold"/><EditTextandroid:id="@+id/et_payer_newin"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="海明有限公司"android:textColor="#000000"android:textSize="20sp"android:textStyle="bold"android:gravity="center"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="10dp"android:layout_marginLeft="30dp"android:layout_marginRight="30dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="备 注:"android:textColor="#000000"android:textSize="20sp"android:textStyle="bold"/><EditTextandroid:id="@+id/et_remark_newin"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="远程技术指导费"android:textColor="#000000"android:textSize="20sp"android:textStyle="bold"android:gravity="center"/></LinearLayout><Buttonandroid:id="@+id/bt_save_newin"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="保存"android:textSize="20sp"android:textColor="#ffffff"android:layout_marginLeft="60dp"android:layout_marginRight="60dp"android:background="@drawable/btn_style_one"android:layout_marginTop="40dp"/><Buttonandroid:id="@+id/bt_cancel_newin"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="取消"android:textSize="20sp"android:textColor="#000000"android:layout_marginLeft="60dp"android:layout_marginRight="60dp"android:background="@drawable/btn_style_two"android:layout_marginTop="20dp"/>
</LinearLayout>

4、新增收入类文件 NewInComeActivity.java

public class NewInComeActivity extends AppCompatActivity {
//1 定义对象EditText et_money,et_time,et_payer,et_remark;Spinner sp_type;Button bt_sava,bt_cancel;MyDBHelper mhelper;SQLiteDatabase db;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_new_in_come);//2 绑定控件initView();//3 保存按钮功能的实现btnSave();//4 取消按钮功能的实现btnCancel();}//2 绑定控件-------------------代码private void initView() {et_money=findViewById(R.id.et_money_newin);et_time=findViewById(R.id.et_time_newin);sp_type=findViewById(R.id.sp_type_newin);et_payer=findViewById(R.id.et_payer_newin);et_remark=findViewById(R.id.et_remark_newin);bt_sava=findViewById(R.id.bt_save_newin);bt_cancel=findViewById(R.id.bt_cancel_newin);mhelper=new MyDBHelper(NewInComeActivity.this);db=mhelper.getWritableDatabase();}//3 保存按钮功能的实现--------代码private void btnSave() {bt_sava.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//获取输入的内容保存到数据库的收入表中ContentValues values=new ContentValues();values.put("inmoney",et_money.getText().toString());values.put("intime",et_time.getText().toString());values.put("intype",sp_type.getSelectedItem().toString());values.put("inpayer",et_payer.getText().toString());values.put("inremark",et_remark.getText().toString());db.insert("in_come",null,values);Toast.makeText(NewInComeActivity.this,"保存成功",Toast.LENGTH_SHORT).show();//刷新本页面Intent intent=new Intent(NewInComeActivity.this,NewInComeActivity.class);startActivity(intent);finish();}});}//4 取消按钮功能的实现--------代码private void btnCancel() {bt_cancel.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent=new Intent(NewInComeActivity.this, MainActivity.class);startActivity(intent);finish();}    });}
}

三、新增支出界面

1、界面效果

3、新增支出布局界面 activity_new_pay.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/new_pay_bg"tools:context=".activity.NewPayActivity"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="220dp"android:layout_marginLeft="30dp"android:layout_marginRight="30dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="金 额:"android:textColor="#000000"android:textSize="20sp"android:textStyle="bold"/><EditTextandroid:id="@+id/et_money_newout"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="0.00"android:textColor="#000000"android:textSize="20sp"android:textStyle="bold"android:gravity="center"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="10dp"android:layout_marginLeft="30dp"android:layout_marginRight="30dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="日 期:"android:textColor="#000000"android:textSize="20sp"android:textStyle="bold"/><EditTextandroid:id="@+id/et_time_newout"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="2020-05-12"android:textColor="#000000"android:textSize="20sp"android:textStyle="bold"android:gravity="center"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="10dp"android:layout_marginLeft="30dp"android:layout_marginRight="30dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="类 型:"android:textColor="#000000"android:textSize="20sp"android:textStyle="bold"/><Spinnerandroid:id="@+id/sp_type_newout"android:layout_width="match_parent"android:layout_height="wrap_content"android:entries="@array/paytype"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="10dp"android:layout_marginLeft="30dp"android:layout_marginRight="30dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="收款方:"android:textColor="#000000"android:textSize="20sp"android:textStyle="bold"/><EditTextandroid:id="@+id/et_payer_newout"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="海明有限公司"android:textColor="#000000"android:textSize="20sp"android:textStyle="bold"android:gravity="center"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="10dp"android:layout_marginLeft="30dp"android:layout_marginRight="30dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="备 注:"android:textColor="#000000"android:textSize="20sp"android:textStyle="bold"/><EditTextandroid:id="@+id/et_remark_newout"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="远程技术指导费"android:textColor="#000000"android:textSize="20sp"android:textStyle="bold"android:gravity="center"/></LinearLayout><Buttonandroid:id="@+id/bt_save_newout"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="保存"android:textSize="20sp"android:textColor="#ffffff"android:layout_marginLeft="60dp"android:layout_marginRight="60dp"android:background="@drawable/btn_style_one"android:layout_marginTop="40dp"/><Buttonandroid:id="@+id/bt_cancel_newout"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="取消"android:textSize="20sp"android:textColor="#000000"android:layout_marginLeft="60dp"android:layout_marginRight="60dp"android:background="@drawable/btn_style_two"android:layout_marginTop="20dp"/>
</LinearLayout>

4、新增支出类文件 NewPayActivity.java

public class NewPayActivity extends AppCompatActivity {
//定义对象
EditText et_money,et_time,et_payer,et_remark;Spinner sp_type;Button bt_sava,bt_cancel;MyDBHelper mhelper;SQLiteDatabase db;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_new_pay);//2 绑定控件initView();//3 保存按钮功能的实现btnSave();//4 取消按钮功能的实现btnCancel();}//2 绑定控件-------------------代码private void initView() {et_money=findViewById(R.id.et_money_newout);et_time=findViewById(R.id.et_time_newout);sp_type=findViewById(R.id.sp_type_newout);et_payer=findViewById(R.id.et_payer_newout);et_remark=findViewById(R.id.et_remark_newout);bt_sava=findViewById(R.id.bt_save_newout);bt_cancel=findViewById(R.id.bt_cancel_newout);mhelper=new MyDBHelper(NewPayActivity.this);db=mhelper.getWritableDatabase();}//3 保存按钮功能的实现--------代码private void btnSave() {bt_sava.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//获取输入的内容保存到数据库的收入表中ContentValues values=new ContentValues();values.put("outmoney",et_money.getText().toString());values.put("outtime",et_time.getText().toString());values.put("outtype",sp_type.getSelectedItem().toString());values.put("outpayee",et_payer.getText().toString());values.put("outremark",et_remark.getText().toString());db.insert("pay_out",null,values);Toast.makeText(NewPayActivity.this,"保存成功",Toast.LENGTH_SHORT).show();//刷新本页面Intent intent=new Intent(NewPayActivity.this,NewPayActivity.class);startActivity(intent);finish();}});}//4 取消按钮功能的实现--------代码private void btnCancel() {bt_cancel.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent=new Intent(NewPayActivity.this, MainActivity.class);startActivity(intent);finish();}});}
}

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

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

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

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

    一.收入明细界面 1.界面效果 2.前期准备 2.1 首先添加 RecyclerView 的依赖 展开 Android 的工程目录结构,在 app 下方,打开 build.gradle 文件,输入依 ...

  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. android 家庭理财软件 需求分析,基于Android的家庭理财通的设计与实现.docx

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

  9. Android实战:手把手实现“捧腹网”APP(二)-----捧腹APP原型设计、实现框架选取...

    Android实战:手把手实现"捧腹网"APP(一)-–捧腹网网页分析.数据获取 Android实战:手把手实现"捧腹网"APP(二)-–捧腹APP原型设计.实 ...

最新文章

  1. AI产业智能化白皮书 | 清华x百度:全面解读AI产业化的现在和未来(附下载)...
  2. python 跳过迭代_Python迭代和解析(4):自定义迭代器
  3. 在Windows下使用gcc
  4. 矿泉水功能突破口-丰收节交易会·李喜贵:遵义谋定水产业
  5. 国际农民丰收节贸易会-万祥军: 全球TOP10农企携手阿里
  6. c语言野指针和空指针,C++中的空指针和野指针
  7. 如何认识物联网?还云里雾里不?
  8. CENTOS7配置静态IP后无法ping通外部网络的问题
  9. Vim中数字自增、自减
  10. 【2018icpc宁夏邀请赛现场赛】【Gym - 102222A】Maximum Element In A Stack(动态的栈中查找最大元素)
  11. 系统快捷方式java_java中这么创建界面快捷方式图标 代码
  12. ocp认证考试指南第一章
  13. 人生不值得,我在用python.1_关于python
  14. C++ 如何画橡皮线
  15. 2020-10-27中国大学MOOC学习进度
  16. 线性代数:特征值和特征向量
  17. 纯手工焊接七彩圣诞树
  18. C语言void指针的用法
  19. iPhone惊爆史诗级漏洞:亿万台手机可永久越狱 苹果无法修复
  20. 集米社浅谈下那些令网兼者疯狂的时代。

热门文章

  1. 记一个老年机的逆向工程与主线linux移植 (二)—— 主线内核和postmarketOS
  2. 2021-09-142021年危险化学品经营单位主要负责人考试报名及危险化学品经营单位主要负责人考试技巧
  3. SBSGAN: Suppression of Inter-Domain Background Shift for Person Re-Identification 论文笔记 ReId-UDA(一)
  4. python和revit_Revit中Python脚本使用技术训练视频教程
  5. [cocos2dx]斗地主制作之界面搭建
  6. 02-f_readdir 解析
  7. 如何禁止手工输入但允许扫码器输入
  8. vue---使用van-filed组件 华为手机无法换行
  9. 薅支付宝的深深深套路....
  10. Java行业已经饱和了?胡扯,怎么可能,只是不需要这类型的程序员了