|
<
1、主界里
1、界里结果
2、筹办事情
(1)正在工程包名上面创立一个文件夹 挑选工程的包名——左击——new——package——正在如今呈现的内乱容前面逃减输进 activity——单击 ok 按钮,即可天生 activity 文件夹。
(2) 正在 activity 文件夹中创立 6 个子页里 挑选 activity 文件夹,左击——new——activity——Empty Activity——输进类 名:InComeActivity——单击 ok 按钮。
3、主界里规划 activity_main.xml
4、主界里类文件 MainActivity.java
- public class MainActivity extends AppCompatActivity {
- //界说工具
- Button bt_newincome,bt_incomedetail,btn_newpay,btn_paydetail,bt_dataanalyse,btn_setting;
- @Override
- protected 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() {
- @Override
- public void onClick(View v) {
- Intent intent=new Intent(MainActivity.this, NewInComeActivity.class);
- startActivity(intent);
- }
- });
- bt_incomedetail.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent=new Intent(MainActivity.this, InComeDetailActivity.class);
- startActivity(intent);
- }
- });
- btn_newpay.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent=new Intent(MainActivity.this, NewPayActivity.class);
- startActivity(intent);
- }
- });
- btn_paydetail.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent=new Intent(MainActivity.this, PayDetailActivity.class);
- startActivity(intent);
- }
- });
- bt_dataanalyse.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent=new Intent(MainActivity.this, DataAnalyseActivity.class);
- startActivity(intent);
- }
- });
- btn_setting.setOnClickListener(new View.OnClickListener() {
- @Override
- public 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差别的是,二者均跟着详细宽多发死改动。
2、新删支出界里
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
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;
- @Override
- protected 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() {
- @Override
- public 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() {
- @Override
- public void onClick(View v) {
- Intent intent=new Intent(NewInComeActivity.this, MainActivity.class);
- startActivity(intent);
- finish();
- }
- });
- }
- }
复造代码 3、新删收入界里
1、界里结果
3、新删收入规划界里 activity_new_pay.xml
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;
- @Override
- protected 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() {
- @Override
- public 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() {
- @Override
- public void onClick(View v) {
- Intent intent=new Intent(NewPayActivity.this, MainActivity.class);
- startActivity(intent);
- finish();
- }
- });
- }
- }
复造代码
免责声明:假如进犯了您的权益,请联络站少,我们会实时删除侵权内乱容,感谢协作! |
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,按照目前互联网开放的原则,我们将在不通知作者的情况下,转载文章;如果原文明确注明“禁止转载”,我们一定不会转载。如果我们转载的文章不符合作者的版权声明或者作者不想让我们转载您的文章的话,请您发送邮箱:Cdnjson@163.com提供相关证明,我们将积极配合您!
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并自负版权等法律责任。
|