安卓学习-数据存储与IO-Sqlite

直接用sql语句实现 ,添加、删除、修改

MainActivity.java

public class MainActivity extends Activity implements OnClickListener{

    Button btn1;
    Button btn2;
    Button btn3;
    EditText editText1;
    EditText editText2;
    SQLiteDatabase db;
    ListView listView1;
    Cursor cursor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn1=(Button)findViewById(R.id.button1);
        btn2=(Button)findViewById(R.id.button2);
        btn3=(Button)findViewById(R.id.button3);
        btn1.setOnClickListener(this);
        btn2.setOnClickListener(this);
        btn3.setOnClickListener(this);

        editText1=(EditText)findViewById(R.id.editText1);
        editText2=(EditText)findViewById(R.id.editText2);
        listView1=(ListView)findViewById(R.id.listView1);
        try {
            File file= new File(getFilesDir().getCanonicalPath()+"/test.db");

            if(file.exists()){
                file.delete();
            }

            //打开数据库,不存在则创建
            db=SQLiteDatabase.openOrCreateDatabase(getFilesDir().getCanonicalPath()+"/test.db", null);
            String sql=
            "CREATE TABLE t_test ("+
            "        _id  INTEGER NOT NULL,"+
            "        name  TEXT,"+
            "        PRIMARY KEY (_id ASC)"+
            "        )";
            db.execSQL(sql);
        } catch (IOException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
    }

    public void onClick(View paramView) {
        if(paramView==btn1){
            int _id=Integer.parseInt(editText1.getText().toString());
            String name=editText2.getText().toString();
            String sql="select * from t_test where _id="+_id;
            Cursor cursor=db.rawQuery(sql, null);
            if(cursor.getCount()>0){
                Toast.makeText(MainActivity.this, "记录已存在", Toast.LENGTH_SHORT).show();
            }else{
                sql="INSERT INTO t_test VALUES (?, ?)";
                db.execSQL(sql, new Object[]{_id,name});
            }
        }else if(paramView==btn2){
            int _id=Integer.parseInt(editText1.getText().toString());
            String name=editText2.getText().toString();
            String sql="update t_test set _id=?,name=? where _id=?";
            db.execSQL(sql, new Object[]{_id,name,_id});
        }else if(paramView==btn3){
            int _id=Integer.parseInt(editText1.getText().toString());
            String sql="delete from t_test where _id=?";
            db.execSQL(sql, new Object[]{_id});
            editText1.setText("");
            editText2.setText("");
        }

        cursor=db.rawQuery("select * from t_test", null);
        SimpleCursorAdapter adapter=new SimpleCursorAdapter(MainActivity.this,
                R.layout.item, cursor, new String[]{"_id","name"}, new int[]{R.id.textView2,R.id.textView4});
        listView1.setAdapter(adapter);
        listView1.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> paramAdapterView,
                    View paramView, int paramInt, long paramLong) {
                if(cursor.moveToPosition(paramInt)){
                    editText1.setText(""+cursor.getInt(cursor.getColumnIndex("_id")));
                    editText2.setText(cursor.getString(cursor.getColumnIndex("name")));
                }
            }
        });
    }
}

item.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:padding="10dp">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="15dp"
        android:text="ID:"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView1"
        android:layout_alignBottom="@+id/textView1"
        android:layout_marginLeft="33dp"
        android:layout_toRightOf="@+id/textView1"
        android:text="001"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView2"
        android:layout_alignBottom="@+id/textView2"
        android:layout_marginLeft="17dp"
        android:layout_toRightOf="@+id/textView2"
        android:text="名字:"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView3"
        android:layout_alignBottom="@+id/textView3"
        android:layout_marginLeft="27dp"
        android:layout_toRightOf="@+id/textView3"
        android:text="测试1"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</RelativeLayout>

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button1"
        android:layout_alignBottom="@+id/button1"
        android:layout_centerHorizontal="true"
        android:text="修改" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button2"
        android:layout_alignBottom="@+id/button2"
        android:layout_alignParentRight="true"
        android:layout_marginRight="21dp"
        android:text="删除" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editText2"
        android:layout_marginTop="11dp"
        android:text="添加" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView2"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@+id/button1"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText2"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@+id/textView1"
        android:ems="10" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/button1"
        android:layout_below="@+id/editText1"
        android:layout_marginTop="19dp"
        android:text="名字"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_alignParentTop="true"
        android:layout_marginTop="21dp"
        android:layout_toLeftOf="@+id/editText1"
        android:text="id"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <ListView
        android:id="@+id/listView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/button2" >

    </ListView>

</RelativeLayout>

时间: 2024-11-09 14:34:18

安卓学习-数据存储与IO-Sqlite的相关文章

安卓学习-数据存储与IO-File存储

1.data目录下 MainActivity.java public class MainActivity extends Activity implements OnClickListener { EditText editText1; TextView textView3; SharedPreferences pre; Editor editor; @Override protected void onCreate(Bundle savedInstanceState) { super.onC

安卓学习-数据存储与IO-SharedPreferences

运行完后,可以在DDMS,看到这个xml文件 MainActivity.java public class MainActivity extends Activity implements OnClickListener{ EditText editText1; TextView textView3; SharedPreferences pre; Editor editor; @Override protected void onCreate(Bundle savedInstanceState)

flutter 数据存储 SP和sqlite

添加插件: shared_preferences: ^0.4.2 path_provider: ^1.2.0 sqflite: ^0.12.0 import 'dart:async'; import 'dart:io'; import 'package:flutter/material.dart'; import 'package:path/path.dart'; import 'package:path_provider/path_provider.dart'; import 'package

【Android】数据存储-java IO流文件存储

1.数据持久化:将在内存中的瞬时数据保存在存储设备中.瞬时数据:设备关机数据丢失.持久化技术提供一种机制可以让数据在瞬时状态和持久状态之间转换. 2.Android中简单的三种存储方式:文件存储.SharedPreference 存储以及数据库存储. 1.文件存储 :不对数据作任何处理,将数据原封不动地存储到文件中,适合存储一些简单的文本数据和二进制数据. a.将数据存储到文件中 Context类提供了一个openFileOutput()方法,可以用于将数据存储到文件中.这个方法接收两个参数,第

第三章:iOS的数据存储与IO

如果应用程序值需要保存程序参数.选项相关的少量数据,则可使用NSUserDefaults进行保存; 如果应用程序只是少量数据需要保存,那使用属性列表文件就可以了; 如果应用程序有大量数据需要存储.访问,就需要借助于数据库.iOS系统内置了SQLite数据库,SQLite数据库是一个真正轻量级的数据库,他没有后台进程,整个数据库就对应于一个文件,这样就可以非常方便的在不同设备之间移植.iOS为访问SQLite数据库提供了两套API:基于C语言风格的libsqlite3.dylib和面向对象的Cor

Android数据存储之IO

Android开发中免不了数据本地的存储,今天我们来说一说如何利用IO流来进行数据存储. 这里我们通过模拟一个QQ登陆界面的小demo来实际操作IO流. 功能描述:点击按钮能够保存用户输入的用户名和密码,当点击记住密码时,亦能在应用第二次打开时,回显用户名和密码 1.这里布局文件的代码就不贴了,看效果图 2.MainActivity.java package com.example.viewswitchtest; import java.io.BufferedReader; import jav

Android学习——数据存储之文件存储

将数据存储到文件中并读取数据 1.新建FilePersistenceTest项目,并修改activity_main.xml中的代码,如下:(只加入了EditText,用于输入文本内容,不管输入什么按下back键就丢失,我们要做的是数据被回收之前,将它存储在文件中) 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.a

Android学习笔记十六.Android数据存储与IO.SharedPreferences

SharedPreferences 对于应用程序的数据输入.输出,如果是应用程序只是少量数据需要保存,那么使用普通文件就可以了(SharedPrefereces);但如果应用程序有大量数据需要存储.访问,就需要借助数据库了.Android系统内置了SQLite数据库,SQLite数据库是一个真正轻量级的数据库,它没有后台进程,整个数据库就对应于一个文件. 1.SharedPreferences简介 (1)概念:SharedPreferences保存的数据主要是类似于配置信息格式的数据,因此它保存

Android学习笔记十七.Android数据存储与IO.File存储常用API

Android通过一套完整的I/O流体系,包括FileInputStream.FileOutputStream等,通过这些I/O流来访问手机存储上的文件. 一.API 1.File (1)功能:该类提供一些有限的功能-获取或设置文件的权限.文件类型.最后依次修改时间等,通常它所代表的文件名(包含路径)将被转换为UTF-8字节序列被使用. (2)继承关系 java.lang.Object ? java.io.File (3)构造方法  File(File dir, String name):构造一