zoukankan      html  css  js  c++  java
  • 实战演练-记账本App(四)

    今天完成了收入功能的相关操作

    1、创建IncomeBean.java

    package com.example.mm;
    
    public class IncomeBean {
        public String incomeTitle;
        public String incomeDate;
        public String incomeMoney;
    }

    2、创建数据库

    package com.example.mm;
    
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    
    import androidx.annotation.Nullable;
    
    
    public class DatabaseHelper1 extends SQLiteOpenHelper {
    
    
        public static final String Income_TITLE = "income_title";
        public static final String Income_DATE = "income_date";
        public static final String Income_MONEY = "income_money";
        public static final String IMOOC_Income1 = "imooc_income1";
    
        public DatabaseHelper1(@Nullable Context context) {
            super(context, "imooc_daily1", null, 1);
        }
    
        @Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL("create table if not exists imooc_income1(" +
                    "id integer primary key," +
                    "income_title varchar," +
                    "income_date varchar," +
                    "income_money varchar)");
        }
    
        public void insertIncome(IncomeBean incomeBean) {
            SQLiteDatabase database = getWritableDatabase();
            ContentValues cv = new ContentValues();
            cv.put(Income_TITLE, incomeBean.incomeTitle);
            cv.put(Income_DATE, incomeBean.incomeDate);
            cv.put(Income_MONEY, incomeBean.incomeMoney);
            database.insert(IMOOC_Income1, null, cv);
        }
    
        public Cursor getAllCostData() {
            SQLiteDatabase database = getWritableDatabase();
            return database.query(IMOOC_Income1, null, null, null, null, null, Income_DATE + " ASC");
        }
    
        public void deleteAllData() {
            SQLiteDatabase database = getWritableDatabase();
            database.delete(IMOOC_Income1, null, null);
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    
        }
    }

    3、IncomeListAdapter.java

    package com.example.mm;
    
    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.TextView;
    
    import java.util.List;
    
    public class IncomeListAdapter extends BaseAdapter {
    
    
        private List<IncomeBean> mList;
        public Context mContext;
        private LayoutInflater mlayoutInflater;
    
    
        public IncomeListAdapter(Context context, List<IncomeBean> 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.mTvIncomeTitle = convertView.findViewById(R.id.tv_title);
                viewHolder.mTvIncomeDate = convertView.findViewById(R.id.tv_date);
                viewHolder.mTvIncomeMoney = convertView.findViewById(R.id.tv_cost);
                convertView.setTag(viewHolder);
            } else {
                viewHolder = (ViewHolder) convertView.getTag();
            }
            IncomeBean bean = mList.get(position);
            viewHolder.mTvIncomeTitle.setText(bean.incomeTitle);
            viewHolder.mTvIncomeDate.setText(bean.incomeDate);
            viewHolder.mTvIncomeMoney.setText(bean.incomeMoney);
            return convertView;
        }
    
        private static class ViewHolder {
            public TextView mTvIncomeTitle;
            public TextView mTvIncomeDate;
            public TextView mTvIncomeMoney;
        }
    }

    4、SkipActivity1.java

    package com.example.mm;
    
    import android.app.DatePickerDialog;
    import android.content.DialogInterface;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.os.Bundle;
    
    import com.google.android.material.snackbar.Snackbar;
    
    import androidx.appcompat.app.AlertDialog;
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.appcompat.widget.Toolbar;
    
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.Button;
    import android.widget.DatePicker;
    import android.widget.EditText;
    import android.widget.ListView;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class SkipActivity1 extends AppCompatActivity {
    
        private List<IncomeBean> mIncomeBeanList;
        private DatabaseHelper1 mDatabaseHelper;
        private IncomeListAdapter mAdapter;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mIncomeBeanList = new ArrayList<>();
            mDatabaseHelper = new DatabaseHelper1(this);
            ListView incomeList = (ListView) findViewById(R.id.lv_main);
            mAdapter = new IncomeListAdapter(this, mIncomeBeanList);
            incomeList.setAdapter(mAdapter);
            initIncomeData();
            //删除所有
            Button del = (Button) findViewById(R.id.del);
            del.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    creatdialog();
                }
            });
    //退出
            Button tui = (Button) findViewById(R.id.tui);
            tui.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    dialog();
                }
            });
    //添加
            Button btn2 = (Button) findViewById(R.id.btn2);
            btn2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    AlertDialog.Builder builder = new AlertDialog.Builder(SkipActivity1.this);
                    LayoutInflater inflater = LayoutInflater.from(SkipActivity1.this);
                    View viewDialog = inflater.inflate(R.layout.new_cost_data, null);
                    final EditText title = (EditText) viewDialog.findViewById(R.id.et_cost_title);
                    final EditText money = (EditText) viewDialog.findViewById(R.id.et_cost_money);
                    final DatePicker date = (DatePicker) viewDialog.findViewById(R.id.dp_cost_date);
                    builder.setView(viewDialog);
                    builder.setTitle("新收入");
                    builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            IncomeBean incomeBean = new IncomeBean();
                            incomeBean.incomeTitle = title.getText().toString();
                            incomeBean.incomeMoney = money.getText().toString();
                            incomeBean.incomeDate = date.getYear() + "-" + (date.getMonth() + 1) + "-" + date.getDayOfMonth();
                            mDatabaseHelper.insertIncome(incomeBean);
                            mIncomeBeanList.add(incomeBean);
                            mAdapter.notifyDataSetChanged();
                        }
                    });
                    builder.setNegativeButton("取消", null);
                    builder.create().show();
                }
            });
        }
    
        private void initIncomeData() {
            //mDatabaseHelper.deleteAllData();
            // for (int i=0;i<6;i++) {
            //    CostBean costBean=new CostBean();
            //    costBean.costTitle=i+"mock";
            //  costBean.costMoney="20";
            //     mDatabaseHelper.insertCost(costBean);
            // }
            Cursor cursor = mDatabaseHelper.getAllCostData();
            if ( cursor != null ) {
                while (cursor.moveToNext()) {
                    IncomeBean incomeBean = new IncomeBean();
                    incomeBean.incomeTitle = cursor.getString(cursor.getColumnIndex("income_title"));
                    incomeBean.incomeDate = cursor.getString(cursor.getColumnIndex("income_date"));
                    incomeBean.incomeMoney = cursor.getString(cursor.getColumnIndex("income_money"));
                    mIncomeBeanList.add(incomeBean);
    
                }
                cursor.close();
            }
        }
    
        private void creatdialog() {
            AlertDialog.Builder b = new AlertDialog.Builder(SkipActivity1.this);
    
            //设置提示框内容
            b.setMessage("确认删除?");
            //设置标题栏
            b.setTitle("提示");
            b.setPositiveButton("确认", new DialogInterface.OnClickListener() {
    
                public void onClick(DialogInterface dialog, int which) {
                    mDatabaseHelper.deleteAllData();
                    finish();
                    Toast.makeText(SkipActivity1.this, "删除成功", Toast.LENGTH_SHORT).show();
                }
            }).setNegativeButton("取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(SkipActivity1.this, "删除失败", Toast.LENGTH_SHORT).show();
                    dialog.dismiss();
                }
            });
            b.create().show();
        }
    
        private void dialog() {
            AlertDialog.Builder builder = new AlertDialog.Builder(SkipActivity1.this);
            builder.setMessage("确认要退出么?");
            builder.setTitle("提示");
            builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
    
                    dialog.dismiss();
                    Toast.makeText(SkipActivity1.this, "退出成功", Toast.LENGTH_SHORT).show();
                    finish();
                }
            });
            builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
    
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub
                    dialog.dismiss();
                }
            });
            builder.show();
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.menu_main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
    
            //noinspection SimplifiableIfStatement
            if ( id == R.id.action_settings ) {
                return true;
            }
    
            return super.onOptionsItemSelected(item);
        }
    }

    其效果和支出的相关操作一样,就不附效果图了。

  • 相关阅读:
    C语言中for循环的使用
    详解C语言的main函数
    计算机语言的发展(the history of computer's language)
    hdu 1001
    hoj 1002
    hdu 1000
    POJ 1000(水题)
    hoj 1001
    code hunt题解(1)
    《C和指针》学习笔记(3)
  • 原文地址:https://www.cnblogs.com/MoooJL/p/12210590.html
Copyright © 2011-2022 走看看