android移动开发基础之记事本,Android+SQLite数据库实现的生词记事本功能实例

Android+SQLite数据库实现的生词记事本功能实例

发布时间:2020-10-13 23:35:46

来源:脚本之家

阅读:94

作者:ITzhongzi

本文实例讲述了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>

converCursorToList(Cursor cursor)

{

ArrayList> result =

new ArrayList>();

//遍历Cursor结果集

while(cursor.moveToNext())

{

//将结果集中的数据存入ArrayList中

Map map = new

HashMap();

//取出查询记录中第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代码如下:

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical">

android:id="@+id/word"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:hint="@string/input"/>

android:id="@+id/detail"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:hint="@string/input"

android:lines="3"/>

android:id="@+id/insert"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/insert"/>

android:id="@+id/key"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:hint="@string/record"/>

android:id="@+id/search"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/search"/>

android:id="@+id/show"

android:layout_width="fill_parent"

android:layout_height="fill_parent"/>

另一个需要跳转的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> list =

(List>)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: 代码如下:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:id="@+id/fragment">

android:id="@+id/my_title"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

android:id="@+id/my_content"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

listView的子项目布局命名为ine:

代码如下:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:id="@+id/fragment">

android:id="@+id/my_title"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

android:id="@+id/my_content"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

最后数据库帮助类命名为:

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程序设计有所帮助。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值