精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Android平臺應(yīng)用開發(fā)實(shí)例:Notepad

移動開發(fā) Android
這個(gè)教程中將會在Android平臺上建立一個(gè)簡單的應(yīng)用開發(fā)Notepad。開發(fā)中需要調(diào)用Sqlite數(shù)據(jù)庫,以及通過xml文件定義界面等。

在這個(gè)教程中將會建立一個(gè)簡單列表界面,允許用戶添加刪除,但是不能編輯。包括如下的內(nèi)容:

◆ListActivities的基礎(chǔ)知識和如何建立菜單項(xiàng)。

◆如何使用SQLite 數(shù)據(jù)庫訪問數(shù)據(jù)。

◆如何使用ArrayAdapter綁定數(shù)據(jù)到ListView (最簡單的一種方式)。

◆最基本的Layout,包括如何顯示一個(gè)ListView,如何向一個(gè)菜單插入菜單項(xiàng)以及如何響應(yīng)菜單

第一步 建立工程

使用Eclipse建立一個(gè)工程N(yùn)otepad

第二步 如何使用Sqlite數(shù)據(jù)庫

和系統(tǒng)相關(guān)的接口調(diào)用都要用到Context類。

1打開數(shù)據(jù)庫

代碼片段:

public DBHelper(Context ctx) {
try {
//打開已經(jīng)存在的數(shù)據(jù)庫
db = ctx.openDatabase(DATABASE_NAME, null);
} catch (FileNotFoundException e) {
try {
//建立新的數(shù)據(jù)庫
db =
ctx.createDatabase(DATABASE_NAME, DATABASE_VERSION, 0, null);
//建立數(shù)據(jù)表
db.execSQL(DATABASE_CREATE);
} catch (FileNotFoundException e1) {
db = null;
}
}
}

Context類的openDatabase可以打開一個(gè)已經(jīng)存在的數(shù)據(jù)庫,如果數(shù)據(jù)庫不存在,將會拋出FileNotFoundException異常。可以通過Context類的createDatabase函數(shù)建立一個(gè)新的數(shù)據(jù)庫。通過調(diào)用SQLiteDatabase 的execSQL方法,執(zhí)行一條SQL語句建立一個(gè)新的數(shù)據(jù)表。

2.獲取表中的數(shù)據(jù)

代碼如下:

public List﹤Row﹥ fetchAllRows() {
ArrayList﹤Row﹥ ret = new ArrayList﹤Row﹥();
try {
Cursor c =
db.query(DATABASE_TABLE, new String[] {
"rowid", "title", "body"}, null, null, null, null, null);
int numRows = c.count();
c.first();
for (int i = 0; i ﹤ numRows; ++i) {
Row row = new Row();
row.rowId = c.getLong(0);
row.title = c.getString(1);
row.body = c.getString(2);
ret.add(row);
c.next();
}
} catch (SQLException e) {
Log.e("booga", e.toString());
}
return ret;
}

 

建立一個(gè)游標(biāo)類Cursor 通過SQLiteDatabase 的query方法查詢一個(gè)表格。有了Cursor就可以遍歷所有的記錄了。

3添加新的記錄

public void createRow(String title, String body) {
ContentValues initialValues = new ContentValues();
initialValues.put("title", title);
initialValues.put("body", body);
db.insert(DATABASE_TABLE, null, initialValues);
}

 

 

構(gòu)造一個(gè)ContentValues類,通過調(diào)用put方法,可以設(shè)置一條記錄的屬性。通過調(diào)用SQLiteDatabase的insert方法添加一條新的記錄。

4 刪除記錄

public void deleteRow(String str)
{
db.delete(DATABASE_TABLE, "title=\'" + str+"\'", null);
}

 

直接調(diào)用SQLiteDatabase的delete方法,第二個(gè)參數(shù)是一個(gè)SQL條件表達(dá)式。

第三步 顯示方式和界面

大部分的界面都有一個(gè)Layout。我們的界面是顯示在整個(gè)屏幕中的List。還有其他的顯示方式,比如懸浮的窗口(Dialog,Alert)。
打開main.xml文件。
這是一個(gè)定義界面顯示風(fēng)格的資源文件。

a. 所有的界面資源文件都從這樣的一行開始: ﹤?xml version="1.0" encoding="utf-8"?﹥.

b. 一般的類型定義都是LinearLayout (并不是總是)

c. 關(guān)于XML的名稱空間的定義,總是下面一行:

xmlns:android="http://schemas.android.com/apk/res/android"

#p#

第四步 編輯notepad_list.xml文件

最終如下所示:

﹤?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 "﹥
﹤ListView id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/﹥
﹤TextView id="@id/android:empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/no_notes"/﹥
﹤/LinearLayout﹥


a. ListView和TextView只能顯示一個(gè),正常情況下,ListView會被顯示出來,當(dāng)沒有任何一個(gè)數(shù)據(jù)的時(shí)候?qū)@示一個(gè)TextView ,顯示出 "還沒有建立任何數(shù)據(jù)!" ,字符串資源將被定義在資源文件中。

b. 在 ListView 和 TextView中的帶@符號的字符串表示,XML解析器將會分析出后面的數(shù)據(jù)是一個(gè)資源ID。

c. 通過更改資源文件,在R.java文件中的代碼會反應(yīng)出來。在代碼中使用的資源都要通過R.java中的常量進(jìn)行索引

第五步 定義一個(gè)顯示列表項(xiàng)風(fēng)格的配置文件

在res/layout目錄現(xiàn)建立一個(gè)新的文件notes_row.xml.

添加如下的代碼:

﹤?xml version="1.0" encoding="utf-8"?﹥

﹤TextView id="@+id/text1"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/﹥

 

 

第六步

把Notepad 的父類從 Activity 改為 ListActivity:

public class Notepad extends ListActivity

 

注意: 必須導(dǎo)入ListActivity,在 Eclipse下可以使用, ctrl-shift-O

第七步

有三個(gè)方法: onCreate, onCreateOptionsMenu 和 onOptionsItemSelected, 需要我們填充:

onCreate()當(dāng)一個(gè)界面開始顯示的時(shí)候會被調(diào)用,相當(dāng)于一個(gè)界面的主函數(shù)。在這里可以初始化資源和狀態(tài)。

onCreateOptionsMenu() 被用來建立一個(gè)界面的菜單。當(dāng)用戶點(diǎn)擊菜單鍵的時(shí)候?qū)@示出來。

onOptionsItemSelected()當(dāng)用選擇菜單的時(shí)候?qū)徽{(diào)用。

第八步

填充onCreate() 方法。

在這里可以設(shè)置界面標(biāo)題,初始化DBHelper對象管理數(shù)據(jù)。填充List列表。

a. 調(diào)用super()傳入?yún)?shù)icicle

b. setContentView to R.layout.notepad_list

c. 定義另外一個(gè)類dbHelper

d. 初始化DBHelper類。

e. 最后調(diào)用方法-fillData()-

f. onCreate()方法如下所示:

@Override
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.notepad_list);
dbHelper = new DBHelper(this);
fillData();
}


添加私有的屬性DBHelper

private DBHelper dbHelper;

 

第九步填充onCreateOptionsMenu() 方法.


在strings.xml文件中定義字符串資源。 a. 在strings.xml 文件中添加一個(gè)字符串資源

﹤string name="menu_insert"﹥添加﹤/string﹥,

﹤string name="menu_delete"﹥刪除﹤/string﹥,

這些在String.xml文件中定義的資源,保存文件后,在R.java中會出先相應(yīng)的資源ID。

定義一個(gè)菜單ID 在NotePad.java 中。

public static final int INSERT_ID = Menu.FIRST;
public static final int DELETE_ID = Menu.FIRST +1;

 

b. 在onCreateOptionsMenu() 中添加菜單項(xiàng),返回父類法方法onCreateOptionsMenu的返回值.。代碼如下所示:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
boolean result = super.onCreateOptionsMenu(menu);
menu.add(0, INSERT_ID, R.string.menu_insert);
menu.add(0, DELETE_ID, R.string.menu_delete);

return result;
}Menu.Add(num1,menuid,string)


其中num1是一個(gè)可以為菜單項(xiàng)排序的基數(shù),所有一樣基數(shù)的菜單項(xiàng)按照加入的順序排序,基數(shù)相同的菜單項(xiàng)排列在一起,基數(shù)按照從小到大的順序從上到下排列菜單項(xiàng)。Menuid是唯一一個(gè)菜單項(xiàng)的標(biāo)識。當(dāng)菜單項(xiàng)被用戶選擇的時(shí)候,這個(gè)標(biāo)識就會在onOptionsItemSelected()方法的參數(shù)中出現(xiàn)。

第十步

填充onOptionsItemSelected() 方法:

當(dāng)用戶選擇菜單以后,onOptionsItemSelected()方法將會被調(diào)用。通過調(diào)用item.getId()方法可以得到選擇的菜單的ID進(jìn)而區(qū)別不同的菜單。 The super.onOptionsItemSelected(item) 返回父類的onOptionsItemSelected()方法;

@Override
public boolean onOptionsItemSelected(Item item) {
switch (item.getId()) {
case INSERT_ID:
createNote();
break;
}

return super.onOptionsItemSelected(item);
}

【編輯推薦】

  1. Android中各種JAVA包的功能描述
  2. Android創(chuàng)建和使用數(shù)據(jù)庫詳細(xì)指南
  3. Android應(yīng)用開發(fā)入門五問
責(zé)任編輯:yangsai 來源: IT168
相關(guān)推薦

2011-09-08 13:11:07

Android Wid實(shí)例

2009-12-16 10:41:47

Android日程表

2011-08-08 16:56:44

iPhone 字符處理 視圖

2011-09-26 10:46:32

Android云計(jì)算開發(fā)

2013-05-20 17:51:47

Android游戲開發(fā)SurfaceView

2009-03-16 15:00:16

阿里軟件旺旺軟件平臺SaaS

2009-06-15 15:16:00

netbeans sw平臺開發(fā)

2011-07-26 11:08:23

iOS 錄像 錄音

2013-05-23 15:06:22

Android開發(fā)體重計(jì)算器移動應(yīng)用

2012-07-25 09:23:59

iOS企業(yè)應(yīng)用Android

2010-10-29 14:08:01

.NETWindows PhoiPhone

2013-05-20 17:13:17

Android游戲開發(fā)CanvasPaint

2011-09-07 17:54:40

Android Wid開發(fā)

2013-02-20 15:29:00

JSONAndroid開發(fā)

2012-12-21 14:59:52

Tabris

2011-05-23 15:56:56

Android

2009-05-08 13:48:56

微軟PHP開源

2010-11-11 09:04:05

跨平臺移動開發(fā)

2014-08-26 11:46:46

QtAndroid實(shí)例教程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

精品视频在线播放一区二区三区| 午夜视频在线观看免费视频| 日韩视频在线一区二区三区| 亚洲免费av片| 国产又黄又猛的视频| 污片视频在线免费观看| 93久久精品日日躁夜夜躁欧美| 国产精品91在线观看| 亚洲国产成人精品综合99| 美女视频亚洲色图| 337p亚洲精品色噜噜噜| 北条麻妃在线视频观看| 高清全集视频免费在线| 久久久久久久久久久黄色| 成人欧美一区二区三区黑人孕妇| 日本少妇毛茸茸高潮| 日韩激情图片| 日韩成人性视频| 亚洲自拍第三页| 日韩毛片免费观看| 亚洲va国产天堂va久久en| 亚洲午夜久久久影院伊人| 日韩性xxxx| 极品美女销魂一区二区三区免费| 日韩av免费在线播放| 国产一级一片免费播放| 欧美a级成人淫片免费看| 精品视频在线观看日韩| 人妻少妇偷人精品久久久任期| 亚洲日本网址| 黑人巨大精品欧美一区二区免费| 成年人三级视频| 成人精品福利| 91麻豆精品视频| 国产精品一 二 三| wwwav在线播放| 精品在线一区二区| 国产精品久久久久久久久久99| 天海翼一区二区| 国产在线不卡| 欧美成人第一页| 国产美女久久久久久| 成人影院天天5g天天爽无毒影院| 日韩电视剧在线观看免费网站| 国产吃瓜黑料一区二区| 一区二区亚洲视频| 日韩一区二区精品在线观看| 国产精品视频中文字幕| 另类中文字幕国产精品| 一本色道久久综合精品竹菊| 国产av人人夜夜澡人人爽麻豆| 91网在线看| 亚洲精品视频自拍| 高清无码一区二区在线观看吞精| 黄色网在线免费看| 国产精品电影院| 一本一道久久久a久久久精品91| av成人手机在线| 国产精品拍天天在线| 视频三区二区一区| 在线视频91p| 最近中文字幕一区二区三区| 福利网在线观看| 成人日日夜夜| 亚洲丶国产丶欧美一区二区三区| 欧美精品久久久久久久久久久| 黄色在线免费观看网站| 黑人巨大精品欧美一区二区一视频| 久久国产亚洲精品无码| 欧美香蕉视频| 欧美乱妇23p| 亚洲三级在线视频| 亚洲福利精品在线| 久久久999免费视频| 日韩精品极品| 91久久久免费一区二区| av污在线观看| 国模大尺度视频一区二区| 欧美一区二区三区公司| 在线观看欧美一区二区| 牛牛影视久久网| 国产亚洲激情视频在线| 日韩欧美视频免费观看| 红桃视频国产一区| 日韩av片永久免费网站| 一级片免费网站| 成人免费高清视频| 日本精品二区| 婷婷色在线播放| 欧美性videos高清精品| 九九热精品在线播放| 爱高潮www亚洲精品| 亚洲日韩欧美视频一区| 国产suv精品一区二区68| 亚洲看片免费| 国产区亚洲区欧美区| 六月丁香综合网| 亚洲国产精品av| 久久这里只有精品18| 另类图片综合电影| 日韩欧美高清在线| 久久久久久成人网| 最新亚洲视频| 成人两性免费视频| 免费在线性爱视频| 亚洲视频在线一区二区| 91av俱乐部| 视频免费一区二区| 国产香蕉97碰碰久久人人| 国产一级片免费观看| 麻豆精品一区二区三区| 精品国产综合区久久久久久| 黄色片网站在线观看| 欧美日韩中文字幕在线视频| 国产农村妇女精品久久| 国产精品探花在线观看| 国模吧一区二区三区| 91国在线视频| 国产色产综合色产在线视频 | 午夜国产在线视频| 亚洲天堂精品在线观看| 欧美精品aaaa| 天天做夜夜做人人爱精品| 九九热这里只有精品免费看| 少妇又紧又色又爽又刺激视频 | 国产精品亚洲一区| 国产精品扒开做爽爽爽的视频| 色天天综合色天天久久| 国产毛片毛片毛片毛片毛片毛片| 亚洲成人二区| 国产精品一区二区三区久久 | 国产日韩一区二区三免费高清| 亚洲欧美日韩中文视频| 国产一级视频在线| 国产成人精品网址| 国产911在线观看| 欧美成人xxxx| 色阁综合伊人av| 国产成人av免费| 久久久久久久久伊人| www国产黄色| 秋霞综合在线视频| 69久久夜色精品国产69乱青草| 风流老熟女一区二区三区| 尤物av一区二区| 深爱五月综合网| 午夜欧美视频| 成人黄色在线免费观看| 青春草视频在线| 亚洲第一页自拍| 久久露脸国语精品国产91| 99久久亚洲一区二区三区青草| 日韩免费视频播放| 人体久久天天| 国产精品电影一区| 中文字幕在线视频区| 欧美三片在线视频观看| 少妇视频在线播放| 久热成人在线视频| 青少年xxxxx性开放hg| 玖玖精品一区| 久久久久久久久久久91| 性xxxx18| 欧洲色大大久久| 国产精品视频一区二区在线观看| 久久9热精品视频| 日韩亚洲欧美一区二区| 美日韩黄色大片| 国产97在线|日韩| av电影在线网| 精品日产卡一卡二卡麻豆| 国产成人精品亚洲男人的天堂 | 男人天堂资源网| 国产一区二区在线看| 日韩黄色片在线| 久久av影视| 成人精品在线观看| 欧亚av在线| 深夜福利亚洲导航| 亚洲欧美另类视频| 日韩欧美国产网站| 爱爱视频免费在线观看| 99精品欧美一区二区蜜桃免费 | 在线观看亚洲视频啊啊啊啊| 亚洲一级大片| 国产91色在线| 午夜av在线免费观看| 日韩av影片在线观看| 中文字幕男人天堂| 亚洲第一狼人社区| 五月天精品在线| 国产成人av网站| 91在线视频观看免费| 狠狠入ady亚洲精品经典电影| 欧美精品一区在线| 日本一区二区乱| 国产精品美女主播| 超碰资源在线| 久久影视免费观看| 飘雪影院手机免费高清版在线观看| 欧美日韩国产免费一区二区 | 日韩网站在线播放| 紧缚捆绑精品一区二区| www黄色av| 国产精品vip| 性欧美大战久久久久久久免费观看| 日韩一区二区三区色| 国产精品久久久久91| 大桥未久在线视频| 欧美大肥婆大肥bbbbb| 川上优的av在线一区二区| 亚洲高清福利视频| 999久久久久| 欧美军同video69gay| 久久久精品福利| 一区二区三区四区中文字幕| 国产毛片欧美毛片久久久| av在线一区二区| 18禁一区二区三区| 久久99久久久欧美国产| 国产视频一区二区三区在线播放| 黄色另类av| 黄网站色视频免费观看| 99久久精品费精品国产风间由美| 欧美日韩在线精品一区二区三区| 中文一区二区三区四区| 亚洲精品日韩av| 欧美jizz18| 国产suv精品一区二区三区88区| 黄视频在线免费看| 欧美精品一二区| 好操啊在线观看免费视频| 宅男66日本亚洲欧美视频| 黄色在线网站| 亚洲视频在线免费看| 青春有你2免费观看完整版在线播放高清| 欧美精品一区二区三区很污很色的| 国产精品视频a| 777午夜精品免费视频| 夜夜躁很很躁日日躁麻豆| 欧美日韩一区二区不卡| 亚洲一线在线观看| 欧美日韩国产综合草草| 中文字幕久久熟女蜜桃| 欧美性大战久久久久久久蜜臀 | 免费精品视频一区| 美日韩中文字幕| 欧美一级片免费观看| 亚洲小说图片| 日本一区二区在线| 成人同人动漫免费观看| 久久久一二三四| 亚洲无中文字幕| 小泽玛利亚av在线| 亚洲黄色视屏| 女性女同性aⅴ免费观女性恋| 国产午夜精品一区二区三区欧美| aa在线免费观看| 青青草一区二区三区| 日本黄色的视频| 国产一区二区伦理片| 苍井空张开腿实干12次| 北岛玲一区二区三区四区| 丝袜美腿中文字幕| 欧美国产综合一区二区| 亚洲伦理一区二区三区| 一区二区三区高清| 国产视频91在线| 欧洲一区二区三区在线| av高清一区二区| 亚洲国产精品成人va在线观看| 欧美成人免费| 久久久精品视频在线观看| av影视在线| 国产成人精品国内自产拍免费看 | 久热re这里精品视频在线6| 欧美三级理论片| 国产乱子轮精品视频| 亚洲激情 欧美| 国产欧美一区二区精品性| 男人操女人的视频网站| 午夜免费久久看| 在线观看免费视频a| 欧美不卡一区二区| 国产一二三在线观看| 欧美精品一区二区免费| 日韩高清中文字幕一区二区| 成人h猎奇视频网站| 欧美激情极品| 在线观看日韩羞羞视频| 国产欧美一级| 亚洲欧美天堂在线| 久久久国产精品不卡| 极品颜值美女露脸啪啪| 色婷婷av一区二区三区软件| www.成人在线观看| 亚洲色图欧美制服丝袜另类第一页| 成人免费观看视频大全| 26uuu另类亚洲欧美日本老年| 国语精品视频| 日韩欧美电影一区二区| 激情久久中文字幕| 中文字幕久久av| 久久影视一区二区| 国产亚洲精品久久久久久打不开| 日本久久精品电影| 风流老熟女一区二区三区| 日韩在线视频观看正片免费网站| 成人免费观看在线观看| 51午夜精品| 久久亚洲国产| 欧美一级黄色影院| av高清久久久| 青草草在线视频| 欧美日本一区二区| 国产乱理伦片a级在线观看| 久久久免费电影| 日本精品视频| 国产奶头好大揉着好爽视频| 久久久青草婷婷精品综合日韩| 第一页在线视频| 亚洲女人小视频在线观看| 精品国产www| 国产午夜精品视频| 日韩精品专区| 品久久久久久久久久96高清| 亚洲精品视频啊美女在线直播| 国产亚洲色婷婷久久| 国产精品国产a级| 亚洲手机在线观看| 伊人伊成久久人综合网小说| 中文字幕成在线观看| 精品国产中文字幕| 国产精品日韩精品欧美精品| 亚洲自拍偷拍精品| 亚洲电影激情视频网站| 日韩在线一区二区三区四区| 欧美理论片在线观看| 精品亚洲二区| 日韩一级特黄毛片| 丁香天五香天堂综合| 久久精品视频国产| 亚洲精品在线观| 182在线播放| 精品一区二区视频| 国产精品亚洲综合久久| 特级西西人体wwwww| 精品人伦一区二区三区蜜桃免费| 色一情一乱一乱一区91av| 韩国精品美女www爽爽爽视频| 91成人入口| aa视频在线播放| 久久综合色婷婷| 无码人妻精品一区二区50| 国产亚洲视频在线观看| 成人在线视频观看| 致1999电视剧免费观看策驰影院| 久草这里只有精品视频| 青青草原在线免费观看| 日韩你懂的电影在线观看| 123区在线| 欧美三日本三级少妇三99| 日本不卡在线视频| 成人在线观看高清| 精品处破学生在线二十三| 五月天av在线| 亚洲欧美日韩在线综合| 国产一区二区电影| 国产真实夫妇交换视频| 亚洲欧美中文日韩在线v日本| av在线一区不卡| 国产一区二区三区在线免费| 99精品欧美一区二区三区小说 | 日韩精品123区| 欧美mv和日韩mv的网站| 欧美大电影免费观看| 伊人色综合影院| 成人av网址在线观看| 999视频在线| 久久精品国产亚洲精品2020| 成人爽a毛片| 一区二区三区免费播放| 一区二区三区日韩精品视频| 性感美女一级片| 91精品国产自产在线老师啪| 亚洲一级黄色| youjizz亚洲女人| 亚洲第一中文字幕在线观看| 成人国产网站| 五月丁香综合缴情六月小说| 亚洲国产成人在线| 手机看片一区二区| 国产一区二区香蕉| 国产一区二区三区久久| 情侣偷拍对白清晰饥渴难耐| 日韩成人高清在线| 亚洲亚洲一区二区三区| 亚洲欧美自拍另类日韩| 精品国产1区2区| 成人福利网站|