App
Posted ywqtro
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了App相关的知识,希望对你有一定的参考价值。
Bean:
package com.bill.model.bean.local; import org.greenrobot.greendao.annotation.Entity; import org.greenrobot.greendao.annotation.Generated; import org.greenrobot.greendao.annotation.Id; /** * 账单bean */ @Entity public class BBill{ @Id(autoincrement = true) private Long id; //本地id private String rid; //服务器端id private float cost; //金额 private String content; //内容 private String userid; //用户id private String payName; //支付方式 private String payImg; // private String sortName; //账单分类 private String sortImg; // private long crdate; //创建时间 private boolean income; //收入支出 private int version; //版本 @Generated(hash = 124482664) public BBill() { } @Generated(hash = 634586034) public BBill(Long id, String rid, float cost, String content, String userid, String payName, String payImg, String sortName, String sortImg, long crdate, boolean income, int version) { this.id = id; this.rid = rid; this.cost = cost; this.content = content; this.userid = userid; this.payName = payName; this.payImg = payImg; this.sortName = sortName; this.sortImg = sortImg; this.crdate = crdate; this.income = income; this.version = version; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getRid() { return rid; } public void setRid(String rid) { this.rid = rid; } public float getCost() { return cost; } public void setCost(float cost) { this.cost = cost; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getUserid() { return userid; } public void setUserid(String userid) { this.userid = userid; } public String getPayName() { return payName; } public void setPayName(String payName) { this.payName = payName; } public String getPayImg() { return payImg; } public void setPayImg(String payImg) { this.payImg = payImg; } public String getSortName() { return sortName; } public void setSortName(String sortName) { this.sortName = sortName; } public String getSortImg() { return sortImg; } public void setSortImg(String sortImg) { this.sortImg = sortImg; } public long getCrdate() { return crdate; } public void setCrdate(long crdate) { this.crdate = crdate; } public boolean isIncome() { return income; } public void setIncome(boolean income) { this.income = income; } public int getVersion() { return version; } public void setVersion(int version) { this.version = version; } public boolean getIncome() { return this.income; } }
MainActivity.java
//省略... /** * * 主界面activity */ public class MainActivity extends BaseActivity implements NavigationView.OnNavigationItemSelectedListener { private Toolbar toolbar; private TabLayout tabLayout; private ViewPager viewPager; private DrawerLayout drawer; private NavigationView navigationView; private TextView tOutcome; private TextView tIncome; private TextView tTotal; private View drawerHeader; private ImageView drawerIv; private TextView drawerTvAccount, drawerTvMail; protected static final int USERINFOACTIVITY_CODE = 0; protected static final int LOGINACTIVITY_CODE = 1; // Tab private FragmentManager mFragmentManager; private MainFragmentPagerAdapter mFragmentPagerAdapter; private MonthListFragment monthListFragment; private MonthChartFragment monthChartFragment; private MyUser currentUser; /***************************************************************************/ @Override protected int getLayoutId() { return R.layout.activity_main; } @Override protected void initData(Bundle savedInstanceState) { super.initData(savedInstanceState); //第一次进入将默认账单分类添加到数据库 if (SharedPUtils.isFirstStart(mContext)) { Log.i(TAG, "第一次进入将默认账单分类添加到数据库"); NoteBean note = new Gson().fromJson(Constants.BILL_NOTE, NoteBean.class); List<BSort> sorts = note.getOutSortlis(); sorts.addAll(note.getInSortlis()); LocalRepository.getInstance().saveBsorts(sorts); LocalRepository.getInstance().saveBPays(note.getPayinfo()); } monthListFragment = new MonthListFragment(); monthChartFragment = new MonthChartFragment(); } @Override protected void initWidget() { super.initWidget(); toolbar = findViewById(R.id.toolbar); tabLayout = findViewById(R.id.tablayout); viewPager = findViewById(R.id.main_viewpager); drawer = findViewById(R.id.main_drawer); navigationView = findViewById(R.id.main_nav_view); tOutcome = findViewById(R.id.t_outcome); tIncome = findViewById(R.id.t_income); tTotal = findViewById(R.id.t_total); //初始化Toolbar toolbar.setTitle("账清"); setSupportActionBar(toolbar); ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); drawer.setDrawerListener(toggle); toggle.syncState(); drawerHeader = navigationView.inflateHeaderView(R.layout.drawer_header); drawerIv = drawerHeader.findViewById(R.id.drawer_iv); drawerTvAccount = drawerHeader.findViewById(R.id.drawer_tv_name); drawerTvMail = drawerHeader.findViewById(R.id.drawer_tv_mail); //设置头部账户 setDrawerHeaderAccount(); //初始化ViewPager mFragmentManager = getSupportFragmentManager(); mFragmentPagerAdapter = new MainFragmentPagerAdapter(mFragmentManager); mFragmentPagerAdapter.addFragment(monthListFragment, "明细"); mFragmentPagerAdapter.addFragment(monthChartFragment, "图表"); monthListFragment.setMonthListListener((outcome, income, total) -> { tOutcome.setText(outcome); tIncome.setText(income); tTotal.setText(total); }); viewPager.setAdapter(mFragmentPagerAdapter); //初始化TabLayout tabLayout.addTab(tabLayout.newTab().setText("明细")); tabLayout.addTab(tabLayout.newTab().setText("图表")); tabLayout.setupWithViewPager(viewPager); } @Override protected void initClick() { super.initClick(); //监听侧滑菜单项 navigationView.setNavigationItemSelectedListener(this); //监听侧滑菜单头部点击事件 drawerHeader.setOnClickListener(v -> { if (currentUser==null){ startActivityForResult(new Intent(mContext, LandActivity.class), LOGINACTIVITY_CODE); }else{ startActivityForResult(new Intent(mContext, UserInfoActivity.class), USERINFOACTIVITY_CODE); } }); } /***************************************************************************/ /** * 设置toolbar右侧菜单 * @param menu * @return */ @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main_toolbar, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.toolbar_date: //时间选择器 new TimePickerBuilder(mContext, (Date date, View v) -> { monthListFragment.changeDate(DateUtils.date2Str(date, "yyyy"), DateUtils.date2Str(date, "MM")); monthChartFragment.changeDate(DateUtils.date2Str(date, "yyyy"), DateUtils.date2Str(date, "MM")); }).setType(new boolean[]{true, true, false, false, false, false}) .setRangDate(null, Calendar.getInstance()) .isDialog(true)//是否显示为对话框样式 .build().show(); break; } return super.onOptionsItemSelected(item); } /** * 监听Activity返回值 * * @param requestCode * @param resultCode * @param data */ @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { switch (requestCode) { case USERINFOACTIVITY_CODE: setDrawerHeaderAccount(); break; case LOGINACTIVITY_CODE: setDrawerHeaderAccount(); break; } } } }
未完待续......
以上是关于App的主要内容,如果未能解决你的问题,请参考以下文章
如何使用模块化代码片段中的LeakCanary检测内存泄漏?
javascript UV Index Monitor App订阅PubNub并显示UV索引值。博文的代码片段。在这里查看项目:https:// githu