目录
要求目标:
效果图:
Android studio sql 数据库查看工具
SQLiteStudio
MainActivity内容:
EditText带icon的布局文件:
界说Myhepler.java ——用户部分——
界说注册登录变乱
注册按钮绑定插入用户记录变乱:
登录按钮绑定匹配数据库用户密码是否正确并且传值跳转Content页面变乱:
ContentActivity:
布局xml文件:
界说Myhelper.java——备忘录数据增删查改——
长按删除数据记录:
短按编辑:
添加备忘录按钮:
onResume()函数实时更新回调函数:
全部代码:
要求目标:
1. 数据库需要存储用户信息、及备忘录信息,
2. 每个用户都有各自的备忘录信息,信息互不干扰
3. 根据按钮 完成数据库 增删查改,实时更新信息
效果图:
Android studio sql 数据库查看工具
SQLiteStudio
下载链接
官网 SQLiteStudiohttps://sqlitestudio.pl/
在当地android studio 上 查询数据库并且复制到桌面用sqlitestudio 工具查看
结果如下:
MainActivity内容:
EditText带icon的布局文件:
xml布局文件
- <?xml version="1.0" encoding="utf-8"?>
- <androidx.constraintlayout.widget.ConstraintLayout 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:background="@drawable/img"
- tools:context=".MainActivity">
- <ImageView
- android:id="@+id/imageView"
- android:layout_width="122dp"
- android:layout_height="109dp"
- android:layout_marginStart="152dp"
- android:layout_marginBottom="44dp"
- android:src="@drawable/userimg"
- app:layout_constraintBottom_toTopOf="@+id/loginView"
- app:layout_constraintStart_toStartOf="parent" />
- <EditText
- android:id="@+id/loginView"
- android:layout_width="235dp"
- android:layout_height="51dp"
- android:layout_marginStart="108dp"
- android:layout_marginTop="232dp"
- android:background="@android:drawable/editbox_background"
- android:hint=" Enter your name"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
- <EditText
- android:id="@+id/passwordView"
- android:layout_width="240dp"
- android:layout_height="50dp"
- android:layout_marginStart="104dp"
- android:layout_marginTop="36dp"
- android:background="@android:drawable/editbox_background"
- android:hint=" Enter your password"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/loginView" />
- <Button
- android:id="@+id/loginbutton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginStart="84dp"
- android:layout_marginTop="144dp"
- android:text="登录"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/passwordView" />
- <Button
- android:id="@+id/registerbutton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="144dp"
- android:layout_marginEnd="40dp"
- android:text="注册"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/passwordView" />
- <CheckBox
- android:id="@+id/checkBox"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="68dp"
- android:layout_marginEnd="36dp"
- android:text="记住密码"
- android:textAppearance="@style/TextAppearance.AppCompat.Medium"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/passwordView" />
- </androidx.constraintlayout.widget.ConstraintLayout>
复制代码 icon 文件
- package com.example.myapplication;
- import androidx.appcompat.app.AppCompatActivity;
- import android.content.Intent;
- import android.content.SharedPreferences;
- import android.database.sqlite.SQLiteDatabase;
- import android.graphics.drawable.Drawable;
- import android.os.Bundle;
- import android.text.method.PasswordTransformationMethod;
- import android.widget.Button;
- import android.widget.CheckBox;
- import android.widget.EditText;
- import android.widget.Toast;
- public class MainActivity extends AppCompatActivity {
- private EditText editText;
- private EditText editText1;
- Drawable icon;
- Drawable icon1;
- private CheckBox checkBox;
- private MyHelper myHelper;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main1);
- editText = findViewById(R.id.loginView);
- editText1 = findViewById(R.id.passwordView);
- editText1.setTransformationMethod(PasswordTransformationMethod.getInstance());//密码不可见
- icon = getResources().getDrawable(R.drawable.profile1);
- icon1 = getResources().getDrawable(R.drawable.password);
- icon.setBounds(0, 0, 80, 80);
- editText.setCompoundDrawables(icon, null, null, null);
- icon1.setBounds(0,0,80,80);
- editText1.setCompoundDrawables(icon1, null, null, null);
-
-
- }
- }
复制代码
界说Myhepler.java ——用户部分——
创建用户表user_table及备忘录content_table
- package com.example.myapplication;
- import android.annotation.SuppressLint;
- import android.content.Context;
- import android.database.Cursor;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteOpenHelper;
- import android.widget.Toast;
- import androidx.annotation.Nullable;
- import java.util.ArrayList;
- import java.util.List;
- public class MyHelper extends SQLiteOpenHelper {
- private static final String dbname = "memo.db";
- private static final String UserTableName = "user_table";
- private static final String ContentTableName = "content_table";
- private List<String> memolist = new ArrayList<>();
- public MyHelper(@Nullable Context context) {
- super(context,dbname, null, 2);
- }
- @Override
- public void onCreate(SQLiteDatabase sqLiteDatabase) {
- String sql_create1 = "CREATE TABLE IF NOT EXISTS "+ UserTableName +"("+"_id integer primary key autoincrement,username varchar not null,password varchar not null"+");";
- sqLiteDatabase.execSQL(sql_create1);
- String sql_create2 = "CREATE TABLE IF NOT EXISTS "+ ContentTableName +"("+"_id integer primary key autoincrement,username varchar not null,memotitle varchar not null"+");";
- sqLiteDatabase.execSQL(sql_create2);
- }
- }
复制代码 插入用户信息:
- //注册事件 插入user记录
- protected void insert_user(user user,SQLiteDatabase sqLiteDatabase){
- sqLiteDatabase.execSQL("insert into user_table "
- + "(username,password)"
- + "values(?,?)" ,
- new String[]{user.getUsername(), user.getPassword()}
- );
- }
复制代码 匹配用户及密码信息:
- //查询数据库 先按username 筛选记录 再与password字段匹配 ,如果不存在记录也是返回false
- @SuppressLint("Range")
- protected boolean queryuser(user user, SQLiteDatabase sqLiteDatabase){
- Cursor cursor = sqLiteDatabase.rawQuery("select * from user_table where username = ? and password = ?", new String[]{user.getUsername(), user.getPassword()});
- if(cursor.moveToNext()) {
- return true;
- }
- return false;
- }
复制代码 界说注册登录变乱
注册按钮绑定插入用户记录变乱:
- myHelper = new MyHelper(MainActivity.this);
- db = myHelper.getWritableDatabase();
- register = findViewById(R.id.registerbutton);
- //注册事件
- register.setOnClickListener(view -> {
- user user = new user(editText.getText().toString(),editText1.getText().toString());
- myHelper.insert_user(user,db);
- Toast.makeText(MainActivity.this,"注册成功",Toast.LENGTH_LONG).show();
- });
复制代码 登录按钮绑定匹配数据库用户密码是否正确并且传值跳转Content页面变乱:
- login.setOnClickListener(view -> {
- user user = new user(editText.getText().toString(),editText1.getText().toString());
- if (myHelper.queryuser(user,db)){
- Toast.makeText(MainActivity.this,"登陆成功",Toast.LENGTH_LONG).show();
- Intent intent = new Intent(MainActivity.this,ContentActivity.class);
- intent.putExtra("username",editText.getText().toString());
- startActivity(intent);
- }else {
- Toast.makeText(MainActivity.this,"用户名或密码错误",Toast.LENGTH_LONG).show();
- }
- });
复制代码 ContentActivity:
布局xml文件:
- <?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"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical"
- android:background="@drawable/background"
- android:gravity="center"
- tools:context=".ContentActivity">
- <TextView
- android:id="@+id/textView"
- android:layout_width="401dp"
- android:layout_height="39dp"
- android:text="备忘录"
- android:textAlignment="center"
- android:textAppearance="@style/TextAppearance.AppCompat.Large" />
- <ListView
- android:id="@+id/listview"
- android:layout_width="398dp"
- android:layout_height="613dp" />
- <Button
- android:id="@+id/button"
- android:layout_width="wrap_content"
- android:layout_height="65dp"
- android:background="@android:drawable/ic_input_add"
- android:backgroundTint="#E1D0D0"
- app:rippleColor="@color/white" />
- </LinearLayout>
复制代码
界说Myhelper.java——备忘录数据增删查改——
- //查询备忘录并且返回list
- protected List<String> queryMemo(String username,SQLiteDatabase db){
- memolist.clear();
- Cursor cursor = db.rawQuery("select * from content_table where username = ? ", new String[]{username});
- while (cursor.moveToNext()){
- memolist.add(cursor.getString(2));
- }
- return memolist;
- }
- //插入备忘录
- protected void insert_title(String username ,String title ,SQLiteDatabase db){
- db.execSQL("insert into content_table "
- + "(username,memotitle)"
- + "values(?,?)" ,
- new String[]{username, title}
- );
- }
- //删除备忘录
- public void delete_content(String username ,String title ,SQLiteDatabase db){
- String sql = "delete from "+ ContentTableName +" where username like '"+username+"' and memotitle like '"+title
- +"';";
- db.execSQL(sql);
- }
- //更新备忘录
- public void update_content(String username,String old_tit,String new_tit,SQLiteDatabase db){
- String sql = "update "+ ContentTableName +" set memotitle = '"+new_tit+"'where username like '"
- +username+"' and memotitle like '"+old_tit+"';";
- db.execSQL(sql);
- }
复制代码
长按删除数据记录:
- //列表点击事件
- //长按
- listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
- @Override
- public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
- final String content = ((TextView) view).getText().toString();
- AlertDialog.Builder editDialog = new AlertDialog.Builder(ContentActivity.this);
- editDialog.setTitle(content);
- editDialog.setMessage("是否删除该备忘录");
- editDialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- myHelper.delete_content(username, content, db);
- Toast.makeText(ContentActivity.this, "数据已删除", Toast.LENGTH_LONG).show();
- onResume();
- }
- });
- editDialog.show();
- return true;
- }
- });
复制代码
短按编辑:
- //短按事件
- listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
- final String content = ((TextView) view).getText().toString();
- final EditText editText = new EditText(ContentActivity.this);
- editText.setText(memolist.get(i));
- AlertDialog.Builder editDialog = new AlertDialog.Builder(ContentActivity.this);
- editDialog.setView(editText);
- editDialog.setTitle("请重新输入内容:");
- editDialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- String newtitle = editText.getText().toString();
- if (newtitle.length() > 0) {
- myHelper.update_content(username, content, newtitle, db);
- Toast.makeText(ContentActivity.this, "数据已存入", Toast.LENGTH_LONG).show();
- onResume();
- } else {
- Toast.makeText(ContentActivity.this, "数据为空", Toast.LENGTH_LONG).show();
- }
- }
- });
- editDialog.show();
- }
- });
复制代码
添加备忘录按钮:
- //添加备忘录按键
- button = findViewById(R.id.button);
- button.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- final EditText editText = new EditText(ContentActivity.this);
- AlertDialog.Builder editalertlog = new AlertDialog.Builder(ContentActivity.this);
- editalertlog.setTitle("请输入备忘录内容:");
- editalertlog.setView(editText);
- editalertlog.setPositiveButton("确认", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- String title = editText.getText().toString();
- if(title.length()>0){
- myHelper.insert_title(username,title,db);
- Toast.makeText(ContentActivity.this,"数据已添加",Toast.LENGTH_LONG).show();
- onResume();
- }else {
- Toast.makeText(ContentActivity.this,"输入数据为空",Toast.LENGTH_LONG).show();
- }
- }
- });
- editalertlog.show();
- }
- });
复制代码
onResume()函数实时更新回调函数:
留意:这个回调函数涉及到界面备忘录数据的表现,另外listview 需要适配器,才能绑定数据
- @Override
- protected void onResume() {
- super.onResume();
- if (db ==null || !db.isOpen()) {
- db = myHelper.getWritableDatabase();
- }
- memolist = myHelper.queryMemo(username,db);
- listView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1,memolist));
- }
复制代码 全部代码:
MainActivity.java:
- ackage com.example.myapplication;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;import android.content.SharedPreferences;import android.database.sqlite.SQLiteDatabase;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.text.method.PasswordTransformationMethod;import android.widget.Button;import android.widget.CheckBox;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity { private EditText editText; private EditText editText1; Drawable icon; Drawable icon1; private CheckBox checkBox; private MyHelper myHelper; private SharedPreferences myShare; private SQLiteDatabase db ; private Button login; private Button register; @Override protected void onStart() { super.onStart(); myShare = getSharedPreferences("save_login",MODE_PRIVATE); Boolean checked = myShare.getBoolean("checkBox",false); String name = myShare.getString("username",null); String password = myShare.getString("password",null); if(checked){ editText.setText(""); editText1.setText(""); }else{ editText.setText(name); editText1.setText(password); } } @Override protected void onStop() { super.onStop(); //myHelper.closeLink(); myShare = getSharedPreferences("save_login",MODE_PRIVATE); SharedPreferences.Editor myEdit = myShare.edit(); if(checkBox.isChecked()){ myEdit.putString("username",editText.getText().toString()); myEdit.putString("password",editText1.getText().toString()); myEdit.putBoolean("checksave",true); myEdit.commit(); }else { myEdit.putBoolean("checksave",false); myEdit.clear().commit(); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main1); editText = findViewById(R.id.loginView); editText1 = findViewById(R.id.passwordView); editText1.setTransformationMethod(PasswordTransformationMethod.getInstance());//密码不可见 icon = getResources().getDrawable(R.drawable.profile1); icon1 = getResources().getDrawable(R.drawable.password); icon.setBounds(0, 0, 80, 80); editText.setCompoundDrawables(icon, null, null, null); icon1.setBounds(0,0,80,80); editText1.setCompoundDrawables(icon1, null, null, null); checkBox = findViewById(R.id.checkBox); myHelper = new MyHelper(MainActivity.this); db = myHelper.getWritableDatabase(); login = findViewById(R.id.loginbutton); register = findViewById(R.id.registerbutton); login.setOnClickListener(view -> {
- user user = new user(editText.getText().toString(),editText1.getText().toString());
- if (myHelper.queryuser(user,db)){
- Toast.makeText(MainActivity.this,"登陆成功",Toast.LENGTH_LONG).show();
- Intent intent = new Intent(MainActivity.this,ContentActivity.class);
- intent.putExtra("username",editText.getText().toString());
- startActivity(intent);
- }else {
- Toast.makeText(MainActivity.this,"用户名或密码错误",Toast.LENGTH_LONG).show();
- }
- }); register.setOnClickListener(view -> { user user = new user(editText.getText().toString(),editText1.getText().toString()); myHelper.insert_user(user,db); Toast.makeText(MainActivity.this,"注册成功",Toast.LENGTH_LONG).show(); }); }}
复制代码 ContentActivity.java
- package com.example.myapplication;import androidx.appcompat.app.AlertDialog;import androidx.appcompat.app.AppCompatActivity;import android.content.DialogInterface;import android.content.Intent;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.EditText;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import java.util.ArrayList;import java.util.List;public class ContentActivity extends AppCompatActivity { private ListView listView; private String username; private String title; private MyHelper myHelper; private SQLiteDatabase db; private List<String> memolist = new ArrayList<>(); private Button button; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_content); listView = findViewById(R.id.listview); //接受MainActivity的传值 Intent intent = getIntent(); username = intent.getStringExtra("username"); myHelper =new MyHelper(this); textView = findViewById(R.id.textView); textView.setText(username+"的备忘录"); //列表点击事件
- //长按
- listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
- @Override
- public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
- final String content = ((TextView) view).getText().toString();
- AlertDialog.Builder editDialog = new AlertDialog.Builder(ContentActivity.this);
- editDialog.setTitle(content);
- editDialog.setMessage("是否删除该备忘录");
- editDialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- myHelper.delete_content(username, content, db);
- Toast.makeText(ContentActivity.this, "数据已删除", Toast.LENGTH_LONG).show();
- onResume();
- }
- });
- editDialog.show();
- return true;
- }
- }); //短按事件
- listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
- final String content = ((TextView) view).getText().toString();
- final EditText editText = new EditText(ContentActivity.this);
- editText.setText(memolist.get(i));
- AlertDialog.Builder editDialog = new AlertDialog.Builder(ContentActivity.this);
- editDialog.setView(editText);
- editDialog.setTitle("请重新输入内容:");
- editDialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- String newtitle = editText.getText().toString();
- if (newtitle.length() > 0) {
- myHelper.update_content(username, content, newtitle, db);
- Toast.makeText(ContentActivity.this, "数据已存入", Toast.LENGTH_LONG).show();
- onResume();
- } else {
- Toast.makeText(ContentActivity.this, "数据为空", Toast.LENGTH_LONG).show();
- }
- }
- });
- editDialog.show();
- }
- }); //添加备忘录按键
- button = findViewById(R.id.button);
- button.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- final EditText editText = new EditText(ContentActivity.this);
- AlertDialog.Builder editalertlog = new AlertDialog.Builder(ContentActivity.this);
- editalertlog.setTitle("请输入备忘录内容:");
- editalertlog.setView(editText);
- editalertlog.setPositiveButton("确认", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- String title = editText.getText().toString();
- if(title.length()>0){
- myHelper.insert_title(username,title,db);
- Toast.makeText(ContentActivity.this,"数据已添加",Toast.LENGTH_LONG).show();
- onResume();
- }else {
- Toast.makeText(ContentActivity.this,"输入数据为空",Toast.LENGTH_LONG).show();
- }
- }
- });
- editalertlog.show();
- }
- }); } /** * */ @Override
- protected void onResume() {
- super.onResume();
- if (db ==null || !db.isOpen()) {
- db = myHelper.getWritableDatabase();
- }
- memolist = myHelper.queryMemo(username,db);
- listView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1,memolist));
- }
- /** * */ @Override protected void onStart() { super.onStart(); } /** * */ @Override protected void onStop() { super.onStop(); }}
复制代码 Myhelper.java
- package com.example.myapplication;import android.annotation.SuppressLint;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.widget.Toast;import androidx.annotation.Nullable;import java.util.ArrayList;import java.util.List;public class MyHelper extends SQLiteOpenHelper { private static final String dbname = "memo.db"; private static final String UserTableName = "user_table"; private static final String ContentTableName = "content_table"; private List<String> memolist = new ArrayList<>(); public MyHelper(@Nullable Context context) { super(context,dbname, null, 2); } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { String sql_create1 = "CREATE TABLE IF NOT EXISTS "+ UserTableName +"("+"_id integer primary key autoincrement,username varchar not null,password varchar not null"+");"; sqLiteDatabase.execSQL(sql_create1); String sql_create2 = "CREATE TABLE IF NOT EXISTS "+ ContentTableName +"("+"_id integer primary key autoincrement,username varchar not null,memotitle varchar not null"+");"; sqLiteDatabase.execSQL(sql_create2); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { String drop = "DROP TABLE IF EXISTS "+ UserTableName +";"; sqLiteDatabase.execSQL(drop); drop = "DROP TABLE IF EXISTS "+ContentTableName +";"; sqLiteDatabase.execSQL(drop); onCreate(sqLiteDatabase); }
- //查询数据库 先按username 筛选记录 再与password字段匹配 ,如果不存在记录也是返回false
- @SuppressLint("Range")
- protected boolean queryuser(user user, SQLiteDatabase sqLiteDatabase){
- Cursor cursor = sqLiteDatabase.rawQuery("select * from user_table where username = ? and password = ?", new String[]{user.getUsername(), user.getPassword()});
- if(cursor.moveToNext()) {
- return true;
- }
- return false;
- }
- //注册事件 插入user记录
- protected void insert_user(user user,SQLiteDatabase sqLiteDatabase){
- sqLiteDatabase.execSQL("insert into user_table "
- + "(username,password)"
- + "values(?,?)" ,
- new String[]{user.getUsername(), user.getPassword()}
- );
- } //查询备忘录并且返回list
- protected List<String> queryMemo(String username,SQLiteDatabase db){
- memolist.clear();
- Cursor cursor = db.rawQuery("select * from content_table where username = ? ", new String[]{username});
- while (cursor.moveToNext()){
- memolist.add(cursor.getString(2));
- }
- return memolist;
- }
- //插入备忘录
- protected void insert_title(String username ,String title ,SQLiteDatabase db){
- db.execSQL("insert into content_table "
- + "(username,memotitle)"
- + "values(?,?)" ,
- new String[]{username, title}
- );
- }
- //删除备忘录
- public void delete_content(String username ,String title ,SQLiteDatabase db){
- String sql = "delete from "+ ContentTableName +" where username like '"+username+"' and memotitle like '"+title
- +"';";
- db.execSQL(sql);
- }
- //更新备忘录
- public void update_content(String username,String old_tit,String new_tit,SQLiteDatabase db){
- String sql = "update "+ ContentTableName +" set memotitle = '"+new_tit+"'where username like '"
- +username+"' and memotitle like '"+old_tit+"';";
- db.execSQL(sql);
- }}
复制代码 user.java:
- package com.example.myapplication;
- public class user {
- private String username;
- private String password;
- public user(String username, String password){
- this.username = username;
- this.password = password;
- }
- public String getUsername() {
- return username;
- }
- public String getPassword() {
- return password;
- }
- }
复制代码 activity_content.xml:
- <?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"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical"
- android:background="@drawable/background"
- android:gravity="center"
- tools:context=".ContentActivity">
- <TextView
- android:id="@+id/textView"
- android:layout_width="401dp"
- android:layout_height="39dp"
- android:text="备忘录"
- android:textAlignment="center"
- android:textAppearance="@style/TextAppearance.AppCompat.Large" />
- <ListView
- android:id="@+id/listview"
- android:layout_width="398dp"
- android:layout_height="613dp" />
- <Button
- android:id="@+id/button"
- android:layout_width="wrap_content"
- android:layout_height="65dp"
- android:background="@android:drawable/ic_input_add"
- android:backgroundTint="#E1D0D0"
- app:rippleColor="@color/white" />
- </LinearLayout>
复制代码 activity_main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <androidx.constraintlayout.widget.ConstraintLayout 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:background="@drawable/img"
- tools:context=".MainActivity">
- <ImageView
- android:id="@+id/imageView"
- android:layout_width="122dp"
- android:layout_height="109dp"
- android:layout_marginStart="152dp"
- android:layout_marginBottom="44dp"
- android:src="@drawable/userimg"
- app:layout_constraintBottom_toTopOf="@+id/loginView"
- app:layout_constraintStart_toStartOf="parent" />
- <EditText
- android:id="@+id/loginView"
- android:layout_width="235dp"
- android:layout_height="51dp"
- android:layout_marginStart="108dp"
- android:layout_marginTop="232dp"
- android:background="@android:drawable/editbox_background"
- android:hint=" Enter your name"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
- <EditText
- android:id="@+id/passwordView"
- android:layout_width="240dp"
- android:layout_height="50dp"
- android:layout_marginStart="104dp"
- android:layout_marginTop="36dp"
- android:background="@android:drawable/editbox_background"
- android:hint=" Enter your password"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/loginView" />
- <Button
- android:id="@+id/loginbutton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginStart="84dp"
- android:layout_marginTop="144dp"
- android:text="登录"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/passwordView" />
- <Button
- android:id="@+id/registerbutton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="144dp"
- android:layout_marginEnd="40dp"
- android:text="注册"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/passwordView" />
- <CheckBox
- android:id="@+id/checkBox"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="68dp"
- android:layout_marginEnd="36dp"
- android:text="记住密码"
- android:textAppearance="@style/TextAppearance.AppCompat.Medium"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/passwordView" />
- </androidx.constraintlayout.widget.ConstraintLayout>
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |