写过一篇 发表于 2024-6-15 03:34:52

Android Studio入门实战--实现数据库增删查改 备忘录实例

目录

要求目标:
效果图:
Android studio sql 数据库查看工具
SQLiteStudio
MainActivity内容:
EditText带icon的布局文件:
界说Myhepler.java  ——用户部分——
界说注册登录变乱
注册按钮绑定插入用户记录变乱:
登录按钮绑定匹配数据库用户密码是否正确并且传值跳转Content页面变乱:
 ContentActivity:
布局xml文件:
界说Myhelper.java——备忘录数据增删查改——
长按删除数据记录:
短按编辑:
添加备忘录按钮:
onResume()函数实时更新回调函数:
全部代码:

要求目标:

              1.  数据库需要存储用户信息、及备忘录信息,
              2.  每个用户都有各自的备忘录信息,信息互不干扰
              3.  根据按钮 完成数据库 增删查改,实时更新信息

效果图:

                



Android studio sql 数据库查看工具

SQLiteStudio

下载链接
 官网           SQLiteStudiohttps://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8https://sqlitestudio.pl/
在当地android studio 上 查询数据库并且复制到桌面用sqlitestudio 工具查看
https://img-blog.csdnimg.cn/32a404cb57ec48719fa9caaa43232af3.png

https://img-blog.csdnimg.cn/c5219fd895ac4d7da5dec083b60274d9.png
https://img-blog.csdnimg.cn/c0990946b2714dd3b02da719879e17a2.png


结果如下:

https://img-blog.csdnimg.cn/0dc7004e304b40b8b32cd343c8e4b0cb.png

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;

    privateMyHelper 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 finalString UserTableName = "user_table";
    private staticfinalString 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记录
    protectedvoid 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
    protectedList<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;    privateMyHelper 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 finalString UserTableName = "user_table";    private staticfinalString 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记录
    protectedvoid insert_user(user user,SQLiteDatabase sqLiteDatabase){
      sqLiteDatabase.execSQL("insert into user_table "
                        + "(username,password)"
                        + "values(?,?)",
                new String[]{user.getUsername(), user.getPassword()}
      );

    }    //查询备忘录并且返回list
    protectedList<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 {
    privateString username;
    privateString 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企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Android Studio入门实战--实现数据库增删查改 备忘录实例