1. 运行效果图
2. 功能点实现
- 用户登录,注册
- 记事本分类
- 增,删,改,查实现
- 使用SQLite数据库存储数据
- ListView列表控件的使用
- 适配器Adapter的使用
- 数据统计树状图(单独的一个模块功能)
3. 核心代码实现过程
- 主页面activity_main.xml布局
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/teal_200"
app:title="记事本"
app:titleTextColor="@color/white">
<TextView
android:id="@+id/chart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:padding="15dp"
android:text="统计报表"
android:textColor="@color/white" />
</androidx.appcompat.widget.Toolbar>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="40dp"
android:src="@mipmap/img_add" />
<ListView
android:id="@+id/listview"
android:divider="@null"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/toolbar" />
</RelativeLayout>
- 主页MainActivity.java页面
public class MainActivity extends BaseActivity {
private String titles[] = {"记账", "打卡", "便签"};
private int position = 0;
private ListView listview;
private ListAdapter mListAdapter;
private ContentDao mContentDao;
@Override
protected int getLayoutId() {
return R.layout.activity_main;
}
@Override
protected void initView() {
listview = findViewById(R.id.listview);
mListAdapter = new ListAdapter(MainActivity.this);
listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
ContentInfo contentInfo = mListAdapter.getItem(position);
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("确定要删除吗?");
builder.setMessage("删除后的数据将无法恢复");
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (mContentDao == null) {
mContentDao = new ContentDao(MainActivity.this);
}
int row = mContentDao.delete(contentInfo.get_id());
if (row > 0) {
if (null != mListAdapter) {
mListAdapter.setList(mContentDao.queryAll());
}
showToast("删除成功");
} else {
showToast("删除失败");
}
}
});
builder.show();
return true;
}
});
}
@Override
protected void setListener() {
findViewById(R.id.add).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("新建分类标签");
builder.setSingleChoiceItems(titles, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
position = which;
showToast(titles[which]);
}
});
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (position == 0) {
startActivityForResult(new Intent(MainActivity.this, ChargeActivity.class), 200);
} else if (position == 1) {
startActivityForResult(new Intent(MainActivity.this, LocationActivity.class), 200);
} else {
startActivityForResult(new Intent(MainActivity.this, StickyActivity.class), 200);
}
position = 0;
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.show();
}
});
findViewById(R.id.chart).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, ChartActivity.class));
}
});
}
@Override
protected void initData() {
if (mContentDao == null) {
mContentDao = new ContentDao(this);
}
listview.setAdapter(mListAdapter);
mListAdapter.setList(mContentDao.queryAll());
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == 200) {
initData();
}
}
}
有问题可联系某站上面(🔍浩宇软件开发)