关于android内部存储的简单使用
介绍:
在首页简单写了一个界面,输入账户,密码信息,并对其可以添加,删除,以及查询
样例
首先,activity_main.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"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="vertical"
android:paddingHorizontal="15dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingHorizontal="120dp"
android:text="数据操作"
android:textSize="30sp"
android:textStyle="bold"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffff"
android:orientation="horizontal"
android:layout_gravity="center"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="30dp">
<TextView
android:id="@+id/tv_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" 账号:"
android:textSize="25sp"
android:textStyle="bold"/>
<EditText
android:id="@+id/et_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/tv_1"
android:background="@null"
android:maxLines="1"
android:hint="请输入账户"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffffff"
android:orientation="horizontal"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp">
<TextView
android:id="@+id/tv_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" 密码:"
android:textSize="25sp"
android:textStyle="bold" />
<EditText
android:id="@+id/et_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/tv_2"
android:inputType="textPassword"
android:background="@null"
android:maxLines="1"
android:hint="请输入密码"/>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="20dp">
<Button
android:id="@+id/bt_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="添加"
android:background="#33CC8F"
android:textColor="#F1FCF8"
android:textSize="18sp"/>
<Button
android:id="@+id/bt_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="删除"
android:background="#33CC8F"
android:textColor="#F1FCF8"
android:textSize="18sp"/>
<Button
android:id="@+id/bt_update"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="修改"
android:background="#33CC8F"
android:textColor="#F1FCF8"
android:textSize="18sp"/>
<Button
android:id="@+id/bt_query"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="查询"
android:background="#33CC8F"
android:textColor="#F1FCF8"
android:textSize="18sp"/>
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/tv_show"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:textSize="20sp"/>
</LinearLayout>
MainActivity.java
package com.hhr.sql_test;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
MyHelper myHelper;
private EditText met_username;
private EditText met_password;
private TextView mtv_sqlshow;
private Button mbt_add;
private Button mbt_delete;
private Button mbt_update;
private Button mbt_query;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myHelper =new MyHelper(this);
init();
}
private void init(){
met_username=(EditText)findViewById(R.id.et_username);
met_password=(EditText)findViewById(R.id.et_password);
mtv_sqlshow=(TextView) findViewById(R.id.tv_show);
mbt_add=(Button)findViewById(R.id.bt_add);
mbt_delete=(Button)findViewById(R.id.bt_delete);
mbt_update=(Button)findViewById(R.id.bt_update);
mbt_query=(Button)findViewById(R.id.bt_query);
mbt_add.setOnClickListener(this);
mbt_delete.setOnClickListener(this);
mbt_update.setOnClickListener(this);
mbt_query.setOnClickListener(this);
}
@Override
public void onClick(View v) {
String name;
String password;
SQLiteDatabase db;
ContentValues values;
switch(v.getId()){
case R.id.bt_add:
name =met_username.getText().toString();
password=met_password.getText().toString();
db=myHelper.getWritableDatabase();
values =new ContentValues();
values.put("name",name);
values.put("password",password);
db.insert("information",null,values);
Toast.makeText(this,"添加成功",Toast.LENGTH_SHORT).show();
db.close();
break;
case R.id.bt_delete:
db = myHelper.getWritableDatabase();
db.delete("information",null,null);
Toast.makeText(this,"信息已删除",Toast.LENGTH_SHORT).show();
mtv_sqlshow.setText("");
db.close();
break;
case R.id.bt_update:
db=myHelper.getWritableDatabase();
values =new ContentValues();
values.put("password",password=met_password.getText().toString());
db.update("information",values,"name=?",new String[]{met_username.getText().toString()});
Toast.makeText(this,"信息已修改",Toast.LENGTH_SHORT).show();
db.close();
break;
case R.id.bt_query:
db = myHelper.getReadableDatabase();
Cursor cursor = db.query("information",null,null,null,null,null,null);
if(cursor.getCount()==0)
{
mtv_sqlshow.setText("");
Toast.makeText(this,"未查询到",Toast.LENGTH_SHORT).show();
}
else
{
cursor.moveToFirst();
mtv_sqlshow.setText("Name:"+cursor.getString(1)+"; Password:"+cursor.getString(2));
}
while(cursor.moveToNext()){
mtv_sqlshow.append("\n"+"Name:"+cursor.getString(1)+"; Password:"+cursor.getString(2));
}
cursor.close();
db.close();
break;
}
}
class MyHelper extends SQLiteOpenHelper{
public MyHelper(Context context){
super(context,"Sqltest.db",null,1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE information(_id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20),password VARCHAR(20))");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
}
数据以sql形式保存在/data/data/包名/databases