• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
玅神
博客园    首页    新随笔    联系   管理    订阅  订阅

团队冲刺第八天

今天完成了:

   将滚动记录功能布局在记账页面,记账页面基本开发完成;;

不足:

  最开始的登录注册页面,删除是因为我的个人原因,我没能实现mysql8.0的远程数据库连接

Fragment.java

package com.matianyi.accountingapp.fragment;

import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;

import com.matianyi.accountingapp.ABaseFragment;
import com.matianyi.accountingapp.R;
import com.matianyi.accountingapp.activity.AddRecordActivity;
import com.matianyi.accountingapp.adapter.ListViewAdapter;
import com.matianyi.accountingapp.bean.RecordBean;
import com.matianyi.accountingapp.util.DateUtil;
import com.matianyi.accountingapp.util.GlobalUtil;

import java.util.LinkedList;

@SuppressLint("ValidFragment")
public class MainFragment extends ABaseFragment implements AdapterView.OnItemLongClickListener {

    private static final String TAG = "MainFragment";
    private View rootView;
    private TextView textView;
    private ListView listView;
    private ListViewAdapter listViewAdapter;

    private LinkedList<RecordBean> records;


    private String date = "";

    // MainActivity activity;

    @SuppressLint("ValidFragment")
    public MainFragment(String date){
        this.date = date;
        records = GlobalUtil.getInstance().databaseHelper.readRecords(date);

        // listViewAdapter = new ListViewAdapter(this.getActivity().getApplicationContext());

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        rootView = inflater.inflate(R.layout.fragment_main,container,false);
        initView();
        return rootView;
    }


    public void reload(){

        records = GlobalUtil.getInstance().databaseHelper.readRecords(date);

//        if (listViewAdapter == null){
//            listViewAdapter = new ListViewAdapter(getActivity().getApplicationContext());
//        }
        // Log.d(TAG, "reload: " + records);

        getAvailableActivity(activity -> {
            listViewAdapter = new ListViewAdapter(activity.getApplicationContext());
            Log.d(TAG, "onActivityEnabled: " + activity + " context: " + activity.getApplicationContext());
        });



        listViewAdapter.setData(records);
        listView.setAdapter(listViewAdapter);


        if (listViewAdapter.getCount()>0){
            rootView.findViewById(R.id.no_record_layout).setVisibility(View.INVISIBLE);
        }
    }

    private void initView(){


        textView = rootView.findViewById(R.id.day_text);
        listView = rootView.findViewById(R.id.listView);
        textView.setText(date);
        listViewAdapter = new ListViewAdapter(getContext());
        listViewAdapter.setData(records);
        listView.setAdapter(listViewAdapter);

        if (listViewAdapter.getCount() > 0){
            rootView.findViewById(R.id.no_record_layout).setVisibility(View.INVISIBLE);
        }

        textView.setText((DateUtil.getDateTitle(date) + "日"));

        // 设置每一笔账目的长按
        listView.setOnItemLongClickListener(this);
    }

    public int getTotalCost(){
        double totalCost = 0;
        for (RecordBean record: records){
            if (record.getType()==1){
                totalCost += record.getAmount();
            }
        }
        return (int) totalCost;
    }

    public int getTotalIncome() {
        double totalIncome = 0;
        for (RecordBean record : records) {
            if (record.getType() == 2){
                totalIncome += record.getAmount();
            }
        }
        return (int) totalIncome;
    }

    @Override
    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
        //Log.d(TAG, "onItemLongClick: index " + position + " clicked.");
        // show dialog
        showDialog(position);
        return false;
    }

    // 长按的show dialog方法
    private void showDialog(int index){
        final RecordBean selectedRecords = records.get(index);

        final String[] options = {"删除", "修改"};
        AlertDialog.Builder builder = new AlertDialog.Builder(getContext());

        builder.create();

        builder.setItems(options, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Log.d(TAG, "onClick: " + which + options[which]);
                // 0 -> remove, 1 -> edit
                if (which == 0) {
                    // remove
                    String uuid = selectedRecords.getUuid();
                    GlobalUtil.getInstance().databaseHelper.removeRecord(uuid);
                    // refresh
                    reload();
                    GlobalUtil.getInstance().mainActivity.updateHeader();
                } else if (which == 1) {
                    // edit
                    Intent intent = new Intent(getActivity(), AddRecordActivity.class);
                    Bundle extra = new Bundle();
                    extra.putSerializable("record", selectedRecords);
                    intent.putExtras(extra);
                    startActivityForResult(intent, 1);
                }
            }
        });
        builder.setNegativeButton("取消", null);

        builder.create().show();
    }

}

  

posted @ 2020-04-22 19:08  玅神  阅读(124)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3