设置界面逻辑编写
作者:@kuaiquxie
作者的github:https://github.com/bitebita
本文为作者原创,如需转载,请注明出处:https://www.cnblogs.com/dzwj/p/15872261.html
“关于”界面
package com.example.easycash; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class AboutActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_about); } public void onClick(View view) { finish(); } }
历史记录界面
package com.example.easycash; import androidx.appcompat.app.AppCompatActivity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.TextView; import com.example.easycash.adapter.AccountAdapter; import com.example.easycash.db.AccountBean; import com.example.easycash.db.DBManager; import com.example.easycash.utils.CalendarDialog; import java.util.ArrayList; import java.util.Calendar; import java.util.List; public class HistoryActivity extends AppCompatActivity { ListView historyLv; TextView timeTv; List<AccountBean>mDatas; AccountAdapter adapter; int year,month; int dialogSelPos = -1; int dialogSelMonth = -1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_history); historyLv = findViewById(R.id.history_lv); timeTv = findViewById(R.id.history_tv_time); mDatas = new ArrayList<>(); // 设置适配器 adapter = new AccountAdapter(this,mDatas); historyLv.setAdapter(adapter); initTime(); timeTv.setText(year+"年"+month+"月"); loadData(year,month); setLVClickListener(); } /*设置ListView每一个item的长按事件*/ private void setLVClickListener() { historyLv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { AccountBean accountBean = mDatas.get(position); deleteItem(accountBean); return false; } }); } private void deleteItem(final AccountBean accountBean) { final int delId = accountBean.getId(); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("提示信息").setMessage("您确定要删除这条记录么?") .setNegativeButton("取消",null) .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { DBManager.deleteItemFromAccounttbById(delId); mDatas.remove(accountBean); //实时刷新,从数据源删除 adapter.notifyDataSetChanged(); } }); builder.create().show(); } /* 获取指定年份月份收支情况的列表*/ private void loadData(int year,int month) { List<AccountBean> list = DBManager.getAccountListOneMonthFromAccounttb(year, month); mDatas.clear(); mDatas.addAll(list); adapter.notifyDataSetChanged(); } private void initTime() { Calendar calendar = Calendar.getInstance(); year = calendar.get(Calendar.YEAR); month = calendar.get(Calendar.MONTH)+1; } public void onClick(View view) { switch (view.getId()) { case R.id.history_iv_back: finish(); break; case R.id.history_iv_rili: CalendarDialog dialog = new CalendarDialog(this,dialogSelPos,dialogSelMonth); dialog.show(); dialog.setDialogSize(); dialog.setOnRefreshListener(new CalendarDialog.OnRefreshListener() { @Override public void onRefresh(int selPos, int year, int month) { timeTv.setText(year+"年"+month+"月"); loadData(year,month); dialogSelPos = selPos; dialogSelMonth = month; } }); break; } } }
package com.example.easycash; import androidx.appcompat.app.AppCompatActivity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.widget.Toast; import com.example.easycash.db.DBManager; public class SettingActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_setting); } public void onClick(View view) { switch (view.getId()) { case R.id.setting_iv_back: finish(); break; case R.id.setting_tv_clear: showDeleteDialog(); break; } } private void showDeleteDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("删除提示") .setMessage("您确定要删除所有记录么?\n注意:删除后无法恢复,请慎重选择!") .setPositiveButton("取消",null) .setNegativeButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { DBManager.deleteAllAccount(); Toast.makeText(SettingActivity.this,"删除成功!",Toast.LENGTH_SHORT).show(); } }); builder.create().show(); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」