• 单词本实现效果


    继承自SQLiteOpenHelper的MyDataBaseHelper类

     1 package com.dj.wordsbookdemo;
     2 
     3 import android.content.Context;
     4 import android.database.sqlite.SQLiteDatabase;
     5 import android.database.sqlite.SQLiteDatabase.CursorFactory;
     6 import android.database.sqlite.SQLiteOpenHelper;
     7 
     8 public class MyDataBaseHelper extends SQLiteOpenHelper {
     9     
    10 
    11     public MyDataBaseHelper(Context context, String name,
    12             CursorFactory factory, int version) {
    13         super(context, name, factory, version);
    14         
    15     }
    16     @Override
    17     public void onCreate(SQLiteDatabase db) {
    18          db.execSQL("CREATE TABLE IF NOT EXISTS words"+"(_id INTEGER PRIMARY KEY AUTOINCREMENT,word VARCHAR(20),mean VARCHAR(300))");
    19     }
    20 
    21     @Override
    22     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    23         
    24     }
    25 
    26 }

    主文件

     1 import android.app.Activity;
     2 import android.content.ContentValues;
     3 import android.database.Cursor;
     4 import android.database.sqlite.SQLiteDatabase;
     5 import android.os.Bundle;
     6 import android.view.View;
     7 import android.widget.EditText;
     8 import android.widget.ListView;
     9 import android.widget.SimpleAdapter;
    10 import android.widget.SimpleCursorAdapter;
    11 
    12 public class MainActivity extends Activity {
    13     private SQLiteDatabase db;
    14     private EditText et1, et2;
    15     private ListView listview;
    16     private MyDataBaseHelper helper;
    17     String word;
    18     String mean;
    19 
    20     @Override
    21     protected void onCreate(Bundle savedInstanceState) {
    22         super.onCreate(savedInstanceState);
    23         setContentView(R.layout.activity_main);
    24         et1 = (EditText) findViewById(R.id.et1);
    25         et2 = (EditText) findViewById(R.id.et2);
    26         listview = (ListView) findViewById(R.id.listView1);
    27         
    28         helper=new MyDataBaseHelper(this, "sql.db", null, 1);
    29         db = helper.getWritableDatabase();
    30         
    31         inflater();
    32     }
    33 
    34     public void addWords(View v) {
    35         word = et1.getText().toString();
    36         mean = et2.getText().toString();
    37         //添加单词的时候如果存在相同的,单词的意思被替换为本次的。
    38         if (db.query("words", null, "word=?", new String[]{word}, null, null, null).getCount()>0) {
    39             //execSQL()方法
    40             db.execSQL("update words set mean='"+mean+"' where word='"+word+"'");
    41             //db.update()方法
    42             /*ContentValues values = new ContentValues();
    43             values.put("mean", mean);
    44             db.update("words", values, "word=?", new String[] { word });*/
    45         }else{
    46 
    47         ContentValues values = new ContentValues();
    48         values.put("word", word);
    49         values.put("mean", mean);
    50         db.insert("words", null, values);
    51         }
    52         //添加数据后就刷新listview的内容
    53         inflater();
    54     }
    55     
    56     //删除按钮监听器
    57     public void deleteWords(View v) {
    58         word = et1.getText().toString();
    59         if (word.equals("")) {
    60             et1.setError("请输入要删除的单词");
    61         }
    62         String[] whereArgs={word};
    63         db.delete("words", "word=?", whereArgs);
    64         //删除数据后刷新listview的内容
    65         inflater();
    66     }
    67     //查询按钮监听器
    68     public void findWords(View v){
    69         word = et1.getText().toString();
    70         //根据单词查找数据
    71         String sql="select * from words where word=?";
    72         Cursor cursor = db.rawQuery(sql, new String[]{word});
    73         SimpleCursorAdapter adapter=new SimpleCursorAdapter(MainActivity.this, R.layout.data, cursor, new String[]{"word","mean"}, new int[]{R.id.textView1, R.id.textView2},SimpleCursorAdapter.IGNORE_ITEM_VIEW_TYPE);
    74         listview.setAdapter(adapter);
    75     }
    76     
    77     //定义一个inflater()方法用于及时的刷新数据
    78     public void inflater() {
    79         String sql = "select * from words";
    80         Cursor cursor = db.rawQuery(sql, null);
    81         SimpleCursorAdapter adapter = new SimpleCursorAdapter(
    82                 MainActivity.this, R.layout.data, cursor, new String[] {"word", "mean" }, new int[] { R.id.textView1,R.id.textView2 },
    83                 SimpleCursorAdapter.IGNORE_ITEM_VIEW_TYPE);
    84                 listview.setAdapter(adapter);
    85     }
    86 
    87 }

    main.xml文件

     1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical"
     6     android:paddingBottom="@dimen/activity_vertical_margin"
     7     android:paddingLeft="@dimen/activity_horizontal_margin"
     8     android:paddingRight="@dimen/activity_horizontal_margin"
     9     android:paddingTop="@dimen/activity_vertical_margin"
    10     tools:context=".MainActivity" >
    11 
    12     <EditText
    13         android:id="@+id/et1"
    14         android:layout_width="match_parent"
    15         android:layout_height="wrap_content"
    16         android:hint="单词" />
    17 
    18     <EditText
    19         android:id="@+id/et2"
    20         android:layout_width="match_parent"
    21         android:layout_height="wrap_content"
    22         android:hint="释意" />
    23 
    24     <LinearLayout
    25         android:layout_width="match_parent"
    26         android:layout_height="wrap_content"
    27         android:gravity="center_horizontal" >
    28 
    29         <Button
    30             android:layout_width="wrap_content"
    31             android:layout_height="wrap_content"
    32             android:onClick="addWords"
    33             android:text="添加生词" />
    34 
    35         <Button
    36             android:layout_width="wrap_content"
    37             android:layout_height="wrap_content"
    38             android:onClick="deleteWords"
    39             android:text="删除单词" />
    40 
    41         <Button
    42             android:id="@+id/button1"
    43             android:layout_width="wrap_content"
    44             android:layout_height="wrap_content"
    45             android:onClick="findWords"
    46             android:text="查找单词" />
    47     </LinearLayout>
    48 
    49     <ListView
    50         android:id="@+id/listView1"
    51         android:layout_width="match_parent"
    52         android:layout_height="match_parent" >
    53     </ListView>
    54 
    55 </LinearLayout>
    View Code

    data.xml文件,simpcursoadapter用到

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     android:orientation="vertical" >
     6 
     7     <LinearLayout
     8         android:layout_width="match_parent"
     9         android:layout_height="wrap_content" >
    10 
    11         <TextView
    12             android:layout_width="wrap_content"
    13             android:layout_height="wrap_content"
    14             android:text="单词:" />
    15 
    16         <TextView
    17             android:id="@+id/textView1"
    18             android:layout_width="wrap_content"
    19             android:layout_height="wrap_content" />
    20     </LinearLayout>
    21 
    22     <LinearLayout
    23         android:layout_width="match_parent"
    24         android:layout_height="wrap_content" >
    25 
    26         <TextView
    27             android:layout_width="wrap_content"
    28             android:layout_height="wrap_content"
    29             android:text="意思:" />
    30 
    31         <TextView
    32             android:id="@+id/textView2"
    33             android:layout_width="wrap_content"
    34             android:layout_height="wrap_content" />
    35     </LinearLayout>
    36 
    37 </LinearLayout>
    View Code

    效果图

  • 相关阅读:
    Mysql 主从设置
    HTTP协议--请求与响应
    Memcahce(MC)系列(一)Memcache介绍、使用、存储、算法、优化
    Nginx配置性能优化
    PHP版本--HTTP session cookie原理及应用
    MYSQL 优化常用方法
    linux查询系统负载
    一群猴子排成一圈,按1,2,...,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈
    数据库SQL SELECT查询的工作原理
    Unity使用UGUI进行VR游戏的界面开发
  • 原文地址:https://www.cnblogs.com/dj168/p/sqlite.html
Copyright © 2020-2023  润新知