- 浏览: 150637 次
- 性别:
- 来自: 茂名
文章分类
最新评论
-
stoneyulu:
很好,正需要要!用来在thread和activity之间传数 ...
在Activity中通过Bundle传递自定义数据类型 -
鱼在陆地上跑:
只能读取TXT格式的文件,而不能读取图片
读取Rescource和asset文件夹中的文件 -
myg_315:
我也在调查这个问题,谢谢!
Android程序的退出终于完美解决,兼容所有SDK -
jk138:
谢谢各位的评论,楼下的建议很好,值得大家注意了.
Android程序的退出终于完美解决,兼容所有SDK -
cyilinycc:
非常感谢你提供的这个方法,但我经过测试之后,发现这个方法存在弊 ...
Android程序的退出终于完美解决,兼容所有SDK
[code="java"]SQLiteActivity.java
public class SQLiteActivity extends Activity {
private ToDoDB myToDoDB;
private Cursor myCurson;
private ListView myListView;
private EditText myEditText;
private int _id;
protected final static int MENU_ADD = Menu.FIRST;
protected final static int MENU_EDIT = Menu.FIRST + 1;
protected final static int MENU_DELETE = Menu.FIRST + 2;
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch(item.getItemId()){
case MENU_ADD:
this.addTodo();
break;
case MENU_EDIT:
this.editTodo();
break;
case MENU_DELETE:
this.deleteTodo();
break;
}
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
//添加三个MENU
menu.add(Menu.NONE,MENU_ADD,0,R.string.strAddButton);
menu.add(Menu.NONE,MENU_EDIT,0,R.string.strEditButton);
menu.add(Menu.NONE,MENU_DELETE,0,R.string.strDeleteButton);
return true;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myListView = (ListView)this.findViewById(R.id.myListView);
myEditText = (EditText)this.findViewById(R.id.myEditText);
myToDoDB = new ToDoDB(this);
//取得DataBase里的数据
myCurson = myToDoDB.select();
//new SimpleCursonAdapter并将myCursor传入,显示 数据的字段为todo_text
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.list,myCurson,new String[]{
ToDoDB.FIELD_TEXT},new int[]{R.id.listTextView1});
myListView.setAdapter(adapter);
//将myListView添加OnItemClickListener
myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView> arg0, View arg1, int arg2,
long arg3) {
//将myCurson移到所单击的值
myCurson.moveToPosition(arg2);
//取得字段_id的值
_id = myCurson.getInt(0);
//取得字段todo_text的值
myEditText.setText(myCurson.getString(1));
}
});
myListView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> arg0, View arg1,
int arg2, long arg3) {
SQLiteCursor sc=(SQLiteCursor)arg0.getSelectedItem();
_id = sc.getInt(0);
myEditText.setText(sc.getString(1));
}
@Override
public void onNothingSelected(AdapterView> arg0) {
// TODO Auto-generated method stub
}
});
}
private void addTodo(){
if(myEditText.getText().toString().equals(""))
return ;
//添加数据到数据库
myToDoDB.insert(myEditText.getText().toString());
//重新查询
myCurson.requery();
//刷新myListView
myListView.invalidateViews();
myEditText.setText("");
_id =0;
}
private void editTodo(){
if(myEditText.getText().toString().equals(""))
return ;
//修改数据
myToDoDB.update(_id, myEditText.getText().toString());
myCurson.requery();
myListView.invalidateViews();
myEditText.setText("");
_id=0;
}
private void deleteTodo(){
if(_id==0){
return;
}
//删除数据
myToDoDB.delete(_id);
myCurson.requery();
myListView.invalidateViews();
myEditText.setText("");
_id=0;
}
}
ToDoDB.java
package com.chaowen;
[code="java"]import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class ToDoDB extends SQLiteOpenHelper
{
private final static String DATABASE_NAME = "todo_db";
private final static int DATABASE_VERSION = 1;
private final static String TABLE_NAME = "todo_table";
public final static String FIELD_id = "_id";
public final static String FIELD_TEXT = "todo_text";
public ToDoDB(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db)
{
/* ミtable */
String sql = "CREATE TABLE " + TABLE_NAME + " (" + FIELD_id
+ " INTEGER primary key autoincrement, " + " " + FIELD_TEXT + " text)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
String sql = "DROP TABLE IF EXISTS " + TABLE_NAME;
db.execSQL(sql);
onCreate(db);
}
public Cursor select()
{
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null);
return cursor;
}
public long insert(String text)
{
SQLiteDatabase db = this.getWritableDatabase();
/* 盢穝糤ContentValues */
ContentValues cv = new ContentValues();
cv.put(FIELD_TEXT, text);
long row = db.insert(TABLE_NAME, null, cv);
return row;
}
public void delete(int id)
{
SQLiteDatabase db = this.getWritableDatabase();
String where = FIELD_id + " = ?";
String[] whereValue =
{ Integer.toString(id) };
db.delete(TABLE_NAME, where, whereValue);
}
public void update(int id, String text)
{
SQLiteDatabase db = this.getWritableDatabase();
String where = FIELD_id + " = ?";
String[] whereValue =
{ Integer.toString(id) };
/* 盢эContentValues */
ContentValues cv = new ContentValues();
cv.put(FIELD_TEXT, text);
db.update(TABLE_NAME, cv, where, whereValue);
发表评论
-
Failed to receive access token
2013-04-24 12:52 1458在 com.weibo.net.Token.java文件中 ... -
Android实例五:Notification通知和Broadcast结合
2011-06-15 11:42 8268第一步.MainActivity.java pack ... -
Android实例四:BroadCast_Receiver
2011-06-15 10:36 6732第一步. MainActivity.java ... -
Android实例三:学习Service
2011-06-15 10:15 1340第一步.MainActivity.java pa ... -
Android实例一:文件搜索
2011-06-13 20:12 3766本例子参考SDK开发范例大全 说明:以ListA ... -
关于android ListView的美化
2011-05-31 08:36 963用心的朋友应该会发现,listview中在设置了背景之后。会有 ... -
Android程序的退出终于完美解决,兼容所有SDK
2011-05-30 16:23 3666上网学了好多方法,关于Android的Activity如何退出 ... -
android兼容2.2及以前版本的退出方法
2011-05-30 14:16 1202首先,在首个activity中写: Intent inten ... -
缩放图片的方法
2011-05-26 15:35 1075代码一: public Bitmap ResizeBi ... -
Android对图片的压缩读取和保存
2011-05-26 12:46 1725在开发图片浏览器等软件是,很多时候要显示图片的缩略图,而一般情 ... -
android显示单位
2011-05-19 16:10 957px (pixels)像素 一般HVGA代表320 ... -
申请Google Map密钥
2011-05-17 15:25 17101.启动eclipse,依次单 ... -
SharedPreferences
2011-05-17 14:16 1255package wyf.wpf;//声明包语句 imp ... -
Content Provider
2011-05-17 11:54 1094package wyf.wpf; //声明包 ... -
轻量级数据库SQLite
2011-05-17 11:29 1192MySQLiteHelper.java im ... -
读取Rescource和asset文件夹中的文件
2011-05-17 11:01 5207package wyf.wpf; //声明包 ... -
数据存储之IO
2011-05-17 10:54 964package wyf.wpf; import jav ... -
android 检测当前网络并调用系统设置
2011-05-12 10:07 1673/** * 检测网络是否可用 */ pu ... -
Android 菜单(Menu)控件的使用
2011-05-11 14:05 716有两种方法,可以创建。 1.通过xml来创建 ... -
GridView宫格图的使用
2011-05-11 10:18 2531学习内容:1.GridView的使用 ...
相关推荐
python新手项目实例:实现数据库连接,智力问答游戏python新手项目实例:实现数据库连接,智力问答游戏python新手项目实例:实现数据库连接,智力问答游戏python新手项目实例:实现数据库连接,智力问答游戏python...
Android开发实例:手机助手 源码
实例6:社团管理系统数据库设计.pdf实例6:社团管理系统数据库设计.pdf实例6:社团管理系统数据库设计.pdf实例6:社团管理系统数据库设计.pdf实例6:社团管理系统数据库设计.pdf实例6:社团管理系统数据库设计.pdf...
实例6:社团管理系统数据库设计.docx实例6:社团管理系统数据库设计.docx实例6:社团管理系统数据库设计.docx实例6:社团管理系统数据库设计.docx实例6:社团管理系统数据库设计.docx实例6:社团管理系统数据库设计....
全书分为18章,分别讲解了UI布局实例集锦、控件实例集锦、自动化服务实例集锦、数据存储实例集锦、电话和短信实例集锦、图形图像实例集锦、和网络有关的实例集锦、多媒体实例集锦、Google地图实例集锦、GoogleAPI...
精彩实例:51job数据库系统架构实践 精彩实例:51job数据库系统架构实践
access学习5:附加数据库实例切身体会ACCESS操作。由于资源较大,上传量不足,分为五个部分下载,是我自己学习,录取的视频,操作性和针对性较强,适合初学者入门,亦适合提高access操作。希望大家喜欢,谢谢!
android开发实例:音乐播放器 内含源码及说明文档
实例51:采用aritcle.mdb数据库(access) 实例52:采用tongxun.db数据库(paradox) 实例53:采用系统自带数据库DBDEMOS 实例54:采用tuxing.db,tuxing.MB数据库(paradox) 实例55:采用系统自带数据库DBDEMOS 实例56:采用...
前情提要:Android 数据库(SQLite) 【简介、创建、使用(增删改查、事务、实战演练)、数据显示控件(ListView、Adapter、实战演练)】 https://blog.csdn.net/weixin_44949135/article/details/105955663 Android ...
Android 手机编程实例源码:Widget 源代码,总共有1M多,有测试环境的同仁可下载一试
Android项目实例:记事本 列表展示添加的笔记(包括笔记的题目,内容,创建时间) 右下角添加笔记,点击笔记可以进入编辑页面,长按笔记可以删除和编辑笔记 右上角的搜索图标点击,可以进行模糊查询,右上角按钮可以...
实例:每一个运行的ORACLE数据库与一个ORACLE实例(INSTANCE)相联系。每一次在数据库服务器上启动一数据库时,称为系统全局区(SYSTEM GLOBAL AREA)的一内存区(简称SGA)被分配,有一个或多个ORACLE进程被启动。...
一款android数据库操作的例子,附带源代码
在Android中,可供选择的存储方式有SharedPreferences、文件存储、SQLite数据库方式、内容提供器(Content provider)和网络。一.SharedPreferences方式二.文件存储方式三.SQLite数据库方式四.内容提供器(Content ...
android数据的存储,管理,查询数据,增删,创建.通过这三个实例的学习,你将系统的掌握android 数据库
详解_数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名
实例1:人事管理系统(纯数据库).pdf
Android Studio实例源码,主要介绍常用app的代码