zoukankan      html  css  js  c++  java
  • 项目开发第六天

    任务:完善数据库的操作以及主页面的数据刷新。

    package net.hnjdzy.tinyaccount.entity;
    
    /**
     * 类别
     * @author androiddev@163.com,hnjdzy
     */
    public class AccountCategory {
        private int id;
        private String category;
        private int icon;
    
        public AccountCategory(int id, String category, int icon) {
            this.id = id;
            this.category = category;
            this.icon = icon;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getCategory() {
            return category;
        }
    
        public void setCategory(String category) {
            this.category = category;
        }
    
        public int getIcon() {
            return icon;
        }
    
        public void setIcon(int icon) {
            this.icon = icon;
        }
    
    
        @Override
        public String toString() {
            return category;
        }
    }
    package net.hnjdzy.tinyaccount.entity;
    
    /**
     * 实体类
     * @author Administrator
     *
     */
    public class AccountItem implements java.io.Serializable{
        private int id;
        //类别
        private String category;
        //备注
        private String remark;
        //金额
        private double money;
        //日期
        private String date;
    
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getCategory() {
            return category;
        }
        public void setCategory(String category) {
            this.category = category;
        }
        public String getRemark() {
            return remark;
        }
        public void setRemark(String remark) {
            this.remark = remark;
        }
        public double getMoney() {
            return money;
        }
        public void setMoney(double money) {
            this.money = money;
        }
        public String getDate() {
            return date;
        }
        public void setDate(String date) {
            this.date = date;
        }
    
        public AccountItem(int id, String category, String remark, double money,
                           String date) {
            super();
            this.id = id;
            this.category = category;
            this.remark = remark;
            this.money = money;
            this.date = date;
        }
    
        public AccountItem(){
    
        }
    
        @Override
        public String toString() {
            return this.category + "   " + this.date +  "   " + this.money;
        }
    
    }
    <?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"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <ImageView
            android:id="@+id/imageViewCategory"
            android:layout_width="36dp"
            android:layout_height="36dp"
            android:layout_weight="1"
            android:layout_marginTop="2dp"
            app:srcCompat="@drawable/book_icon" />
    
        <TextView
            android:id="@+id/textViewCategory"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="TextView" />
    </LinearLayout>
    <?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"
        android:layout_margin="10dp">
    
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp"
            >
            <TextView
                android:id="@+id/textViewIncomeDesc"
                android:text="收入汇总"
                android:gravity="center"
                android:paddingBottom="10dp"
                android:textSize="12sp"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_centerInParent="true"/>
    
            <TextView
                android:id="@+id/textViewIncomeSummary"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:padding="10dp"
                android:text="¥0"
                android:textSize="12sp"
                android:layout_below="@+id/textViewIncomeDesc"/>
    
    
    
            <Button
                android:id="@+id/buttonAdd"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:background="#FF8833"
                android:text="+" />
    
        </RelativeLayout>
    
        <ListView
            android:id="@+id/listView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
        </ListView>
    
    </LinearLayout>
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".fragment.OutlayFragment">
    
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp"
            >
            <TextView
                android:id="@+id/textViewIncomeDesc"
                android:text="消费汇总"
                android:gravity="center"
                android:paddingBottom="10dp"
                android:textSize="12sp"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_centerInParent="true"/>
    
            <TextView
                android:id="@+id/textViewIncomeSummary"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:padding="10dp"
                android:text="¥0"
                android:textSize="12sp"
                android:layout_below="@+id/textViewIncomeDesc"/>
    
            <Button
                android:id="@+id/buttonAdd"
                android:layout_width="50dp"
                android:layout_height="50dp"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:background="@drawable/button_shape"
                android:text="+" />
    
        </RelativeLayout>
    
        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true"/>
    
    </LinearLayout>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    
    
    
        <TextView
            android:id="@+id/tv_selected_name"
            android:text="账户余额"
            android:gravity="center"
            android:textSize="12sp"
            android:padding="10dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    
        <TextView
            android:id="@+id/textViewSummary"
            android:text="¥0"
            android:gravity="center"
            android:paddingBottom="10dp"
            android:textSize="12sp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/tv_selected_name"/>
    
    
    </RelativeLayout>
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    
        <TextView
            android:id="@+id/textViewCategory"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginLeft="19dp"
            android:layout_marginTop="14dp"
            android:text="类别" />
    
        <TextView
            android:id="@+id/textViewRemark"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textViewCategory"
            android:layout_alignLeft="@+id/textViewCategory"
            android:layout_marginLeft="120dp"
            android:layout_marginTop="26dp"
            android:text="备注" />
    
        <TextView
            android:id="@+id/textViewMoney"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/textViewCategory"
            android:layout_alignBottom="@+id/textViewCategory"
            android:layout_alignParentRight="true"
            android:layout_marginRight="16dp"
            android:text="500"
            android:textColor="@android:color/holo_red_light"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    
        <TextView
            android:id="@+id/textViewDate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/textViewRemark"
            android:layout_alignBottom="@+id/textViewRemark"
            android:layout_alignRight="@+id/textViewMoney"
            android:textColor="@android:color/darker_gray"
            android:text="2017-11-28" />
    
        <ImageView
            android:id="@+id/imageViewIcon"
            android:layout_width="36dp"
            android:layout_height="36dp"
            android:layout_below="@+id/textViewCategory"
            android:layout_alignStart="@+id/textViewCategory"
            android:layout_marginStart="0dp"
            android:layout_marginTop="5dp"
            app:srcCompat="@drawable/baby_icon" />
    
    </RelativeLayout>
    package net.hnjdzy.tinyaccount.fragment;
    
    
    import android.app.AlertDialog;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AdapterView;
    import android.widget.Button;
    import android.widget.ListView;
    import android.widget.TextView;
    import net.hnjdzy.tinyaccount.R;
    import net.hnjdzy.tinyaccount.activity.AccountEditActivity;
    import net.hnjdzy.tinyaccount.adapter.AccountItemAdapter;
    import net.hnjdzy.tinyaccount.db.AccountDao;
    import net.hnjdzy.tinyaccount.entity.AccountItem;
    import android.widget.AdapterView.OnItemLongClickListener;
    import java.util.ArrayList;
    import java.util.List;
    
    
    /**
     * 收入列表
     * @author androiddev@163.com,hnjdzy
     */
    public class IncomeFragment extends Fragment {
        View mRootView;
    
        public IncomeFragment() {
            // Required empty public constructor
        }
    
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            mRootView = inflater.inflate(R.layout.fragment_income, container, false);
            initView();
            return mRootView;
        }
    
        // 初始化
        private void initView() {
    
            Button buttonAdd = (Button)mRootView.findViewById(R.id.buttonAdd);
            buttonAdd.setOnClickListener(new View.OnClickListener(){
    
                @Override
                public void onClick(View v) {
                    buttonAddOnClick();
                }
    
            });
            ListView listView = (ListView)mRootView.findViewById(R.id.listView1);
            listView.setOnItemLongClickListener(new OnItemLongClickListener(){
    
                @Override
                public boolean onItemLongClick(AdapterView<?> parent, View view,
                                               int position, long id) {
                    deleteItem(id);
                    return true;
                }
    
            });
            refreshData();
        }
        protected void buttonAddOnClick() {
            Intent intent =new Intent(this.getActivity(), AccountEditActivity.class);
            intent.putExtra("isIncome", true);
            this.startActivityForResult(intent, 1);
            //startActivity(intent);
        }
    
        //刷新界面
        private void refreshData() {
            AccountDao  dbManager = new AccountDao(getContext());
           // List<AccountItem> incomeAccountList = getTestData();
             List<AccountItem>   incomeAccountList = dbManager.getIncomeList();
    
            AccountItemAdapter adapter = new AccountItemAdapter(incomeAccountList,getActivity());
            ListView listView = (ListView) mRootView.findViewById(R.id.listView1);
            listView.setAdapter(adapter);
    
            TextView textViewIncomeSummary = (TextView) mRootView.findViewById(R.id.textViewIncomeSummary);
            textViewIncomeSummary.setText("10000");
        }
    
        @Override
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
            Log.d("tinyaccount","onActivityResult");
            refreshData();
        }
    
        protected void deleteItem(final long id) {
            AlertDialog.Builder builder = new AlertDialog.Builder(this.getActivity());
            builder.setTitle(R.string.delete_confirm_title);
            builder.setMessage(R.string.delete_confirm_msg);
    
            builder.setPositiveButton(R.string.button_ok, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    AccountDao dbManager = new AccountDao(getContext());
                    dbManager.deleteIncome(id);
                    refreshData();
                }
            });
            builder.setNegativeButton(R.string.button_cancel, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                }
            });
    
            builder.show();
    
    
        }
    
        private List<AccountItem> getTestData() {
            List<AccountItem> result = new ArrayList<>();
            for(int i=0;i<5;i++) {
                AccountItem item = new AccountItem();
                item.setId(i);
                item.setCategory("兼职收入");
                item.setMoney(100*i);
                item.setDate("2019-01-0"+i);
                result.add(item);
            }
            return result;
        }
    
    }
    package net.hnjdzy.tinyaccount.fragment;
    
    
    
    import android.content.Intent;
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.support.v7.widget.LinearLayoutManager;
    import android.support.v7.widget.RecyclerView;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    import android.widget.TextView;
    
    import net.hnjdzy.tinyaccount.R;
    import net.hnjdzy.tinyaccount.activity.AccountEditActivity;
    import net.hnjdzy.tinyaccount.adapter.OutlayRecyclerViewAdapter;
    import net.hnjdzy.tinyaccount.entity.AccountItem;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * 支出列表
     * @author androiddev@163.com,hnjdzy
     */
    public class OutlayFragment extends Fragment {
        private View mRootView;
        private RecyclerView mRecyclerView;
    
        public OutlayFragment() {
            // Required empty public constructor
        }
    
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            mRootView = inflater.inflate(R.layout.fragment_outlay, container, false);
            initView();
            return mRootView;
        }
    
        private void initView() {
            refresh();
            Button buttonAdd = (Button)mRootView.findViewById(R.id.buttonAdd);
            buttonAdd.setOnClickListener(new View.OnClickListener(){
    
                @Override
                public void onClick(View v) {
                    buttonAddOnClick();
                }
    
            });
        }
        protected void buttonAddOnClick() {
            Intent intent =new Intent(this.getActivity(), AccountEditActivity.class);
            intent.putExtra("isIncome", false);
            // this.startActivityForResult(intent, 1);
            startActivity(intent);
        }
    
        private void refresh(){
            List<AccountItem> outlayAccountList = getTestData();
    
            mRecyclerView = (RecyclerView)mRootView.findViewById(R.id.recyclerView);
            mRecyclerView.setLayoutManager(new LinearLayoutManager(this.getActivity()));
            mRecyclerView.setAdapter(new OutlayRecyclerViewAdapter(this.getActivity(),outlayAccountList));
    
            TextView textViewIncomeSummary = (TextView)mRootView.findViewById(R.id.textViewIncomeSummary);
            textViewIncomeSummary.setText("2000");
        }
    
        private List<AccountItem> getTestData() {
            List<AccountItem> result = new ArrayList<>();
            for(int i=0;i<10;i++) {
                AccountItem item = new AccountItem();
                item.setId(i);
                item.setCategory("食物");
                item.setMoney(100*i);
                item.setDate("2019-01-0"+i);
                result.add(item);
            }
            return result;
        }
    
    }
  • 相关阅读:
    BFC
    js异常处理
    vue双向数据绑定的简单实现
    cookie封装,localstage封装
    问题 1476: [蓝桥杯][基础练习VIP]龟兔赛跑预测 (模拟)
    HDU 6205 (模拟) card card card
    HDU 4545 (模拟) 魔法串
    HDU 4521 小明系列问题——小明序列 (线段树 单点更新)
    基础动态规划 讲解
    HDU 1561 The more, The Better (有依赖背包 || 树形DP)
  • 原文地址:https://www.cnblogs.com/w669399221/p/12319448.html
Copyright © 2011-2022 走看看