Tasky範例解析

2021-06-29 02:23:58 字數 2756 閱讀 2666

一、資料介面tasky.core.android模組

在這個模組中定義乙個任務類task、封裝針對task類進行sql資料操作的taskdatabase類、封裝針對task操作的單例taskrepositoryado類(建立sqllite資料庫檔案、儲存、修改、查詢、刪除task例項的方法)、taskmanager類呼叫taskrepositoryado單例來提供資料增刪改查操作方法。

各個類的作用:

這個模組中需要注意的地方如下:

public taskdatabase (string dbpath)

;foreach (var command in commands)

}} else

console.writeline (output);

}其實就是配置sqliteconnection例項,指定data source後開啟連線,執行create table sql命令。

mono.data.sqlite.dll中提供的sqliteconnection 、sqlitedatareader、sqlitecommand等類。

二、android應用程式

這個模組是有ui介面的程式,包括顯示任務列表的主介面和任務操作(新增、修改、刪除)介面,下面解析一下介面操作的實現步驟。

1、主介面

在任務的resources\layout目錄中,雙擊homescreen.axml,開啟介面設計器,可以看到乙個按鈕控制項和乙個listview控制項。接著在screens目錄雙擊homescreen.cs檔案,開啟原始碼檔案,下面對**中的要點進行簡要說明。

[activity (label = "tasky", mainlauncher = true, icon="@drawable/icon")]

public class homescreen : activity

這裡屬性指定了這個activity是專案的預設啟動activity,並指定其圖示和標題。

protected override void oncreate (bundle bundle)//activity例項建立的時候執行,用於初始化介面元素和資料成員

這裡呼叫了setcontentview函式指定這個activity載入resources\layout目錄中設計的介面。並使用findviewbyid函式獲取介面中的元素例項,為這些元素例項繫結事件、做初始化等操作。

protected override void onresume ()//介面需要重新整理的時候觸發,比如activity第一次顯示或覆蓋在上方的activity被關閉後需要重新繪製介面時執行這個函式。

這個方法時介面需要重新整理的時候自動呼叫的,因此將介面中的listview控制項與任務資料關聯**寫在這裡。首先呼叫上面資料操作模組中提供的方法獲取所有task物件,建立tasklistadapter例項,並賦給介面的listview控制項的adapter屬性。這裡是從資料庫中從新查詢所有任務資料的,保證在任務編輯activity關閉後,從資料庫中獲取到最新的任務資料。

不需要傳遞引數可使用函式:startactivity(typeof(activity類名稱));

需要傳遞引數則使用:

var taskdetails = new intent (this, typeof (taskdetailsscreen));

taskdetails.putextra ("taskid", tasks[e.position].id);

startactivity (taskdetails);

需要子activity返回值的呼叫方式:

//第二引數為 requestcode(請求編碼),主要是設定讓 onactivityresult 可以判斷當初發出的動機(區分onactivityresult函式是針對哪個請求觸發的)

startactivityforresult(typeof(activity類名稱), 1);

接著重寫方法:

protected override void onactivityresult(int requestcode, result resultcode, intent data)

}子activity要返回值必按如下方式設定返回值:

var intent = new intent(this, typeof(activity1));//第二個引數指定目標activity例項的型別資訊,這樣可以讓這種型別的activity例項都觸發執行onactivityresult函式

//放入乙個key 為hero 值為 黑寡婦

intent.putextra("hero", "黑寡婦");

//狀態設為ok

setresult(result.ok, intent);

//呼叫後將關閉此視窗

finish();

public class tasklistadapter : baseadapter

在類的建構函式中將listview所在activity例項、要顯示的資料集合傳遞過來,並儲存在私有資料成員中。接著重寫幾個關鍵虛方法。

public override task this[int position]

}public override long getitemid (int position)

public override int count

}//這個方法最為關鍵,指定每行資料要顯示的ui介面,以及這個ui介面中視覺化控制項顯示的內容

public override android.views.view getview (int position, android.views.view convertview, android.views.viewgroup parent)

lua 範例 Lua讀寫檔案範例

檔案讀寫 檔案讀寫對製作遊戲很有幫助。可以呼叫別的檔案中的 儲存最高分 遊戲存檔 玩家狀態等信寫到檔案中。首先,讓我們看乙個簡單的命令 dofile。這個命令會讀入另乙個檔案的 並立即執行。dofile test.lua 很簡單的命令。注意 是指根目錄,不是子目錄。如果是子目錄,應該這樣用 dofi...

Spring自定義標籤範例,以及原始碼解析

一 自定義標籤範例 1.實現自己的註解xsd xsd complextype xsd complexcontent 2.定義meta inf spring.schemas 配置檔案 3.定義meta inf spring.handlers 配置處理類 4.實現處理類,這裡並沒有真正處理,而是委託給t...

DataBinder Eval用法範例

databinder.eval用法範例 常見繫結格式,不過他們的效能有區別。databinder.eval container.dataitem,n databinder.eval container.dataitem,columnname databinder.eval container.dat...