您的位置:首页 > 其它

单词本实现效果

2013-11-13 00:48 204 查看
继承自SQLiteOpenHelper的MyDataBaseHelper类

package com.dj.wordsbookdemo;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class MyDataBaseHelper extends SQLiteOpenHelper {

public MyDataBaseHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);

}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS words"+"(_id INTEGER PRIMARY KEY AUTOINCREMENT,word VARCHAR(20),mean VARCHAR(300))");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

}


主文件

import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.SimpleCursorAdapter;

public class MainActivity extends Activity {
private SQLiteDatabase db;
private EditText et1, et2;
private ListView listview;
private MyDataBaseHelper helper;
String word;
String mean;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et1 = (EditText) findViewById(R.id.et1);
et2 = (EditText) findViewById(R.id.et2);
listview = (ListView) findViewById(R.id.listView1);

helper=new MyDataBaseHelper(this, "sql.db", null, 1);
db = helper.getWritableDatabase();

inflater();
}

public void addWords(View v) {
word = et1.getText().toString();
mean = et2.getText().toString();
//添加单词的时候如果存在相同的,单词的意思被替换为本次的。
if (db.query("words", null, "word=?", new String[]{word}, null, null, null).getCount()>0) {
//execSQL()方法
db.execSQL("update words set mean='"+mean+"' where word='"+word+"'");
//db.update()方法
/*ContentValues values = new ContentValues();
values.put("mean", mean);
db.update("words", values, "word=?", new String[] { word });*/
}else{

ContentValues values = new ContentValues();
values.put("word", word);
values.put("mean", mean);
db.insert("words", null, values);
}
//添加数据后就刷新listview的内容
inflater();
}

//删除按钮监听器
public void deleteWords(View v) {
word = et1.getText().toString();
if (word.equals("")) {
et1.setError("请输入要删除的单词");
}
String[] whereArgs={word};
db.delete("words", "word=?", whereArgs);
//删除数据后刷新listview的内容
inflater();
}
//查询按钮监听器
public void findWords(View v){
word = et1.getText().toString();
//根据单词查找数据
String sql="select * from words where word=?";
Cursor cursor = db.rawQuery(sql, new String[]{word});
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);
listview.setAdapter(adapter);
}

//定义一个inflater()方法用于及时的刷新数据
public void inflater() {
String sql = "select * from words";
Cursor cursor = db.rawQuery(sql, null);
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);
listview.setAdapter(adapter);
}

}


main.xml文件

<?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:orientation="vertical" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="单词:" />

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="意思:" />

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>

</LinearLayout>


View Code

效果图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: