zoukankan      html  css  js  c++  java
  • 大二寒假作业之账本开发

    今日完成了账本开发的添加账目的功能,需要输入标题,金额,日期,在选支出或是收入,然后点击保存就可以储存。

    长按日期的EditText组件可以显示日期选择对话框。保存时会进行数据检查以及保存从操作。下面伪代码:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="right">
    
            <Button android:id="@+id/btnAddSave"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="保存"
                android:textAllCaps="false">
            </Button>
    
        </LinearLayout>
    
        <LinearLayout android:id="@+id/layoutAddForm"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="标题"
                android:layout_marginTop="25dp">
            </TextView>
    
            <EditText android:id="@+id/txtAddAcctTitle"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
            </EditText>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="金额"
                android:layout_marginTop="25dp">
            </TextView>
    
            <EditText android:id="@+id/txtAddAcctAmount"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="numberDecimal">
            </EditText>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="日期"
                android:layout_marginTop="25dp">
            </TextView>
    
            <EditText android:id="@+id/txtAddAcctDate"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="date">
            </EditText>
    
            <RadioGroup android:id="@+id/rgAddAcctType"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_marginTop="25dp">
    
                <RadioButton android:id="@+id/rdoAddAcctExpenditure"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="支出"
                    android:checked="true">
                </RadioButton>
    
                <RadioButton android:id="@+id/rdoAddAcctIncome"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="收入">
                </RadioButton>
    
            </RadioGroup>
    
        </LinearLayout>
    
    </LinearLayout>
    public class AddActivity extends AppCompatActivity implements View.OnClickListener,
            View.OnLongClickListener, DatePickerDialog.OnDateSetListener {
    
        private EditText txtTitle;
        private EditText txtAmount;
        private EditText txtDate;
        private RadioButton rdoExpenditure;
        private RadioButton rdoIncome;
        private Button btnSave;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.add_layout);
            setTitle("新账目");
            txtTitle =(EditText)findViewById(R.id.txtAddAcctTitle);
            txtAmount=(EditText)findViewById(R.id.txtAddAcctAmount);
            txtDate=(EditText)findViewById(R.id.txtAddAcctDate);
            txtDate.setOnLongClickListener(this);
            rdoExpenditure=(RadioButton)findViewById(R.id.rdoAddAcctExpenditure);
            rdoIncome=(RadioButton)findViewById(R.id.rdoAddAcctIncome);
            CDateTime dt=new CDateTime();
            txtDate.setText(dt.toDateString());
            btnSave=(Button)findViewById(R.id.btnAddSave);
            btnSave.setOnClickListener(this);
        }
        //长按EditText组件时会显示日期选择对话框
        @Override
        public boolean onLongClick(View v) {
            if(v.getId()==R.id.txtAddAcctDate){
                CDateTime dt=new CDateTime();
                DatePickerDialog dlg=new DatePickerDialog(this,this,dt.year(),dt.month(),dt.day());
                //此用于显示一个时间选择
                dlg.show();
            }
            return false;
        }
        @Override
        public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
            txtDate.setText(String.format("%d-%d-%d",year,month,dayOfMonth));
        }
        //
    
        //单击保存时会执行数据检查以及保存操作
        @Override
        public void onClick(View v) {
            if(v.getId()==R.id.btnAddSave){
                String title=txtTitle.getText().toString().trim();
                if(title.equals("")){
                    Toast.makeText(this,"标题为空",Toast.LENGTH_LONG).show();
                    return;
                }
                double amount=CC.toDbl(txtAmount.getText().toString());
                if(amount<=0){
                    Toast.makeText(this,"金额小于0",Toast.LENGTH_LONG).show();
                    return;
                }
                long type=(rdoExpenditure.isChecked()?1:2);
                if(CDateTime.checkDateString(txtDate.getText().toString(),"-")==false){
                    Toast.makeText(this,"日期格式不正确",Toast.LENGTH_LONG).show();
                    return;
                }
                CDateTime dt=new CDateTime(txtDate.getText().toString(),"-");
                //保存
                CAccount acct=CAccount.getInstance(this,1);
                long result=acct.insert(title,amount,type,dt);
                if(result>0){
                    Toast.makeText(this,"保存成功",Toast.LENGTH_LONG).show();
                    txtTitle.setText("");
                }else{
                    Toast.makeText(this,"保存失败",Toast.LENGTH_LONG).show();
                }
            }
        }
    
    
    }
  • 相关阅读:
    css盒子模型 ( 基本针对兼容性问题有点帮助 )
    11.5 Array 数组
    11.5笔记 数组去重
    11.5笔记 函数
    11..2笔记 对象
    11.1笔记
    10.31笔记
    10.31笔记 作用域链
    10.15笔记 js
    10.8补
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/14413763.html
Copyright © 2011-2022 走看看