本文实例讲述了Android+SQLite数据库实现的生词记事本功能。分享给大家供大家参考,具体如下:
主activity命名为
Dict:
代码如下:
package example.com.myapplication; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; public class Dict extends Activity { MyDatabaseHelper dbHelper; Button insert = null; Button search = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 创建MyDatabaseHelper对象,指定数据库版本为1,此处使用相对路径即可, // 数据库文件自动会保存在程序的数据文件夹的databases目录下。 dbHelper = new MyDatabaseHelper(this , "myDict.db3" , 1); insert = (Button)findViewById(R.id.insert); search = (Button)findViewById(R.id.search); insert.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View source) { //获取用户输入 String word = ((EditText)findViewById(R.id.word)) .getText().toString(); String detail = ((EditText)findViewById(R.id.detail)) .getText().toString(); //插入生词记录 insertData(dbHelper.getReadableDatabase() , word , detail); //显示提示信息 Toast.makeText(Dict.this, "添加生词成功!" , Toast.LENGTH_SHORT) .show(); } }); search.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View source) { // 获取用户输入 String key = ((EditText) findViewById(R.id.key)).getText() .toString(); // 执行查询 Cursor cursor = dbHelper.getReadableDatabase().rawQuery( "select * from dict where word like ? or detail like ?", new String[]{"%" + key + "%" , "%" + key + "%"}); //创建一个Bundle对象 Bundle data = new Bundle(); data.putSerializable("data", converCursorToList(cursor)); //创建一个Intent Intent intent = new Intent(Dict.this , ResultActivity.class); intent.putExtras(data); //启动Activity startActivity(intent); } }); } protected ArrayList<Map<String ,String>> converCursorToList(Cursor cursor) { ArrayList<Map<String,String>> result = new ArrayList<Map<String ,String>>(); //遍历Cursor结果集 while(cursor.moveToNext()) { //将结果集中的数据存入ArrayList中 Map<String, String> map = new HashMap<String,String>(); //取出查询记录中第2列、第3列的值 map.put("word" , cursor.getString(1)); map.put("detail" , cursor.getString(2)); result.add(map); } return result; } private void insertData(SQLiteDatabase db , String word , String detail) { //执行插入语句 db.execSQL("insert into dict values(null , ? , ?)" , new String[]{word , detail}); } @Override public void onDestroy() { super.onDestroy(); //退出程序时关闭MyDatabaseHelper里的SQLiteDatabase if (dbHelper != null) { dbHelper.close(); } } }
他的布局文件activity_main代码如下:
<!--?xml version="1.0" encoding="utf-8"?--> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <EditText android:id="@+id/word" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/input"/> <EditText android:id="@+id/detail" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/input" android:lines="3"/> <Button android:id="@+id/insert" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/insert"/> <EditText android:id="@+id/key" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/record"/> <Button android:id="@+id/search" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/search"/> <ListView android:id="@+id/show" android:layout_width="fill_parent" android:layout_height="fill_parent"/> </LinearLayout>
另一个需要跳转的activity命名为:
ResultActivity
具体代码如下:
package example.com.myapplication; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.widget.ListView; import android.widget.SimpleAdapter; import java.util.List; import java.util.Map; public class ResultActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.popup); ListView listView = (ListView)findViewById(R.id.show); Intent intent = getIntent(); //获取该intent所携带的数据 Bundle data = intent.getExtras(); //从Bundle数据包中取出数据 @SuppressWarnings("unchecked") List<Map<String,String>> list = (List<Map<String ,String>>)data.getSerializable("data"); //将List封装成SimpleAdapter SimpleAdapter adapter = new SimpleAdapter( ResultActivity.this , list , R.layout.ine , new String[]{"word" , "detail"} , new int[]{R.id.my_title , R.id.my_content}); //填充ListView listView.setAdapter(adapter); } }
他的布局文件命名为popup: 代码如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/fragment"> <TextView android:id="@+id/my_title" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/my_content" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
listView的子项目布局命名为ine:
代码如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/fragment"> <TextView android:id="@+id/my_title" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/my_content" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
最后数据库帮助类命名为:
MyDatabaseHelper:
代码如下:
package example.com.myapplication; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class MyDatabaseHelper extends SQLiteOpenHelper { final String CREATE_TABLE_SQL = "create table dict(_id integer primary key autoincrement , word , detail)"; public MyDatabaseHelper(Context context, String name, int version) { super(context, name, null, version); } @Override public void onCreate(SQLiteDatabase db) { // 第一个使用数据库时自动建表 db.execSQL(CREATE_TABLE_SQL); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { System.out.println("--------onUpdate Called--------" + oldVersion + "--->" + newVersion); } }
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android操作SQLite数据库技巧总结》、《Android数据库操作技巧总结》、《Android编程之activity操作技巧总结》、《Android文件操作技巧汇总》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
本文向大家介绍Java实现记事本功能,包括了Java实现记事本功能的使用技巧和注意事项,需要的朋友参考一下 今天给大家介绍一下关于如何用Java实现记事本功能,是学习Java swing的一个非常好的案例,下面先看一下运行结果: 下面我们来看源码: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍Android利用Intent实现记事本功能(NotePad),包括了Android利用Intent实现记事本功能(NotePad)的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Intent如何实现一个简单的记事本功能的演示过程,供大家参考,具体内容如下 1、运行截图 单击右上角【…】会弹出【添加】菜单项,长按某条记录会弹出快捷菜单【删除】项。 2、主要设计步骤 (1
本文向大家介绍基于Java实现记事本功能,包括了基于Java实现记事本功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Java实现记事本的具体代码,供大家参考,具体内容如下 编写一个具有菜单以及编辑、查找、替换、复制、粘贴功能,且具有新建、打开和保存文件功能的记事本(MyNotepad)。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍C#实现记事本查找与替换功能,包括了C#实现记事本查找与替换功能的使用技巧和注意事项,需要的朋友参考一下 看了网上关于记事本的查找替换很多,但都没有达到我想要的结果,然后自己学习总结了以下的方法: 统计字符串(汉字,字母,数字,字符) 先上效果图 定义全局变量 向上查找 向下查找 替换 与 全部替换(功能不是很全) 消息弹窗 查找字符着色 以上都为个人的理解,有不全的地方请各位能指点
本文向大家介绍Android SharedPreferences实现数据存储功能,包括了Android SharedPreferences实现数据存储功能的使用技巧和注意事项,需要的朋友参考一下 除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,不同于文件的存储方式,SharedPreferences是使用键值对(key-value)数据的方式来存储数据的。而
本文向大家介绍Android实现原生分享功能,包括了Android实现原生分享功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android实现分享功能的具体代码,供大家参考,具体内容如下 因为公司的需求,最近一直在做分享这一块的功能。大概有这样几种思路: 1.使用Intent调用andoird原生的分享功能; 2.使用第三方的sdk,比如ShareSdk或者友盟; 3.去对应的
本文向大家介绍Android sharedPreferences实现记住密码功能,包括了Android sharedPreferences实现记住密码功能的使用技巧和注意事项,需要的朋友参考一下 实现记住密码功能,供大家参考,具体内容如下 编写界面交互代码: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。