项目开发第六天

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

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;
    }

}

 

posted @ 2020-02-11 22:27  海南之风  阅读(186)  评论(0)    收藏  举报