功能实现单词本的添加与查询单词

查询结果图如下

 

代码如下:

查询结果使用的activity是dialog风格的activity,在manifest文件中如此配置

 

  1. <activity android:name&#61;".ResultActivity" 
  2.            android:label&#61;"查询结果" 
  3.            android:theme&#61;"&#64;android:style/Theme.Dialog">activity> 

要实现数据库的增删改查&#xff0c;需要三步&#xff1a;

1.继承SQLiteOpenHelper复写onCreate方法&#xff0c;一般在里面实现创建表的工作。

2.通过SQLiteOpenHelper的getReadableDatabase或者getWriteableDatabase方法创建数据库

3.调用数据库增删改查方法进行数据操作

 

java代码如下

 

  1. package com.example.mysqliitedatabase; 
  2.  
  3. import android.provider.BaseColumns; 
  4. import android.provider.SyncStateContract.Columns; 
  5. //定义数据库表的名字及表的列名 
  6. public class Words { 
  7.     static class MyColumn implements BaseColumns{ 
  8.         final static String TABLE_NAME&#61;"dict"
  9.         final static String _ID&#61;"_id"
  10.         final static String WORD&#61;"word"
  11.         final static String DETAIL&#61;"detail"
  12.     } 

 

  1. package com.example.mysqliitedatabase; 
  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 MySqliteDatabaseHelper extends SQLiteOpenHelper { 
  9.      
  10.     String CreateTable&#61;"create table dict"&#43;"("&#43;Words.MyColumn._ID&#43;"integer primary key ,"&#43;Words.MyColumn.WORD&#43;","&#43;Words.MyColumn.DETAIL&#43;")"
  11.      
  12.     public MySqliteDatabaseHelper(Context context, String name, 
  13.             CursorFactory factory, int version) { 
  14.         super(context, name, factory, version); 
  15.         // TODO Auto-generated constructor stub 
  16.     } 
  17.  
  18.     &#64;Override 
  19.     public void onCreate(SQLiteDatabase db) { 
  20.         // TODO Auto-generated method stub 
  21.         db.execSQL(CreateTable); 
  22.     } 
  23.  
  24.     &#64;Override 
  25.     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
  26.         // TODO Auto-generated method stub 
  27.          
  28.     } 
  29.  

 

  1. package com.example.mysqliitedatabase; 
  2.  
  3.  
  4. import java.util.ArrayList; 
  5. import java.util.HashMap; 
  6. import java.util.Map; 
  7. import java.util.Stack; 
  8.  
  9. import android.os.Bundle; 
  10. import android.app.Activity; 
  11. import android.content.ContentValues; 
  12. import android.content.Intent; 
  13. import android.database.Cursor; 
  14. import android.database.sqlite.SQLiteDatabase; 
  15. import android.text.TextUtils; 
  16. //import android.view.Menu; 
  17. import android.view.View; 
  18. import android.view.View.OnClickListener; 
  19. import android.widget.Button; 
  20. import android.widget.EditText; 
  21. import android.widget.Toast; 
  22.  
  23. public class MainActivity extends Activity { 
  24.  
  25.     private EditText wordString; 
  26.     private EditText detailString; 
  27.     private EditText queryString; 
  28.     private SQLiteDatabase database; 
  29.     private Button addButton; 
  30.     private Button queryButton; 
  31.     String[] returnColums&#61;{Words.MyColumn.WORD,Words.MyColumn.DETAIL}; 
  32.  
  33.     &#64;Override 
  34.     protected void onCreate(Bundle savedInstanceState) { 
  35.         super.onCreate(savedInstanceState); 
  36.         setContentView(R.layout.activity_main); 
  37.          
  38.         final MySqliteDatabaseHelper datanaseHelper&#61;new MySqliteDatabaseHelper(getApplicationContext(), "dict.db",null,1); 
  39.         wordString&#61;(EditText) findViewById(R.id.editText1); 
  40.         detailString&#61;(EditText) findViewById(R.id.editText2); 
  41.         queryString&#61;(EditText) findViewById(R.id.editText3); 
  42.         addButton&#61; (Button) findViewById(R.id.button1); 
  43.         queryButton&#61;(Button) findViewById(R.id.button2); 
  44.      
  45.         addButton.setOnClickListener(new OnClickListener() { 
  46.             &#64;Override 
  47.             public void onClick(View v) { 
  48.                 // TODO Auto-generated method stub 
  49.                 final String word&#61;wordString.getText().toString(); 
  50.                 final String detail&#61;detailString.getText().toString(); 
  51.                  
  52.                 database&#61;datanaseHelper.getWritableDatabase(); 
  53.                  
  54.                 ContentValues contentValues&#61;new ContentValues(); 
  55.                 contentValues.put(Words.MyColumn.WORD,word); 
  56.                 contentValues.put(Words.MyColumn.DETAIL,detail); 
  57.                  
  58.                 database.insert("dict"null,contentValues); 
  59.                  
  60.                 Toast.makeText(getApplicationContext(), "add success",1000).show(); 
  61.             } 
  62.         }); 
  63.          
  64.         queryButton.setOnClickListener(new OnClickListener() { 
  65.              
  66.             &#64;Override 
  67.             public void onClick(View v) { 
  68.                 // TODO Auto-generated method stub 
  69.                 database&#61;datanaseHelper.getWritableDatabase(); 
  70.                 String query&#61;queryString.getText().toString(); 
  71.                 String[] selectionArgs &#61; null
  72.                 String selection &#61; null
  73.                 Cursor cursor; 
  74.                 if (!TextUtils.isEmpty(query)) { 
  75.                     selectionArgs&#61;new String[]{query}; 
  76.                     selection&#61;Words.MyColumn.WORD&#43;"&#61; ?"
  77.                 } 
  78.                  
  79.                 cursor&#61;database.query("dict", returnColums, selection, selectionArgs, null,null,null); 
  80.                 ArrayList> list&#61;new ArrayList>(); 
  81.                 if (cursor!&#61;null) { 
  82.                     while (cursor.moveToNext()) { 
  83.                         Map map&#61;new HashMap(); 
  84.                         int wordIndex&#61;cursor.getColumnIndex(Words.MyColumn.WORD); 
  85.                         int detailIndex&#61;cursor.getColumnIndex(Words.MyColumn.DETAIL); 
  86.                         map.put(Words.MyColumn.WORD,cursor.getString(wordIndex)); 
  87.                         map.put(Words.MyColumn.DETAIL,cursor.getString(detailIndex)); 
  88.                         list.add(map); 
  89.                     } 
  90.                     Toast.makeText(getApplicationContext(), "query success",1000).show(); 
  91.                     Intent intent&#61;new Intent(getApplicationContext(), ResultActivity.class); 
  92.                     Bundle bundle&#61;new Bundle(); 
  93.                     bundle.putSerializable("data",list); 
  94.                     intent.putExtras(bundle); 
  95.                     startActivity(intent); 
  96.                 } 
  97.                 else { 
  98.                     Toast.makeText(getApplicationContext(), "cursor is null",1000).show(); 
  99.                 } 
  100.             } 
  101.         }); 
  102.     } 

 

  1. package com.example.mysqliitedatabase; 
  2.  
  3. import java.util.ArrayList; 
  4. import java.util.List; 
  5. import java.util.Map; 
  6.  
  7. import android.app.Activity; 
  8. import android.content.Intent; 
  9. import android.os.Bundle; 
  10. import android.widget.ListView; 
  11. import android.widget.SimpleAdapter; 
  12.  
  13. public class ResultActivity extends Activity { 
  14. &#64;Override 
  15. protected void onCreate(Bundle savedInstanceState) { 
  16.     // TODO Auto-generated method stub 
  17.     super.onCreate(savedInstanceState); 
  18.     ListView listView&#61;new ListView(getApplicationContext()); 
  19.     setContentView(listView); 
  20.  
  21.     Intent intent&#61;getIntent(); 
  22.     ArrayList> list&#61;(ArrayList>) intent.getSerializableExtra("data"); 
  23.     SimpleAdapter adapter&#61;new SimpleAdapter(getApplicationContext(), list, R.layout.main, new String[]{Words.MyColumn.WORD,Words.MyColumn.DETAIL},new int[]{R.id.text1,R.id.text2}); 
  24.     listView.setAdapter(adapter);