Luaridaのメニュ編 (1)
Luaridaは起動するとアプリの選択メニュがでてきます。このメニュ自体もluaスクリプトで書かれています。下記です。Luaridaは実行すると、SDカードのluaridaフォルダにあるluarida.luaプログラムを読み込んで実行します。これがメニュプログラムです。このメニュプログラムを書き換えれば、独自のメニュや起動後直ぐにオリジナルプログラムを立ち上げることができます。
------------------------------------------ --アプリ選択メニュ ------------------------------------------ --関数宣言-------------------------------- main={} --mainメソッド split={} --指定キャラクタの前後で2つの文字列に分ける --グローバル変数宣言---------------------- Menu={ "はじめに, hajimeni.lua" , "exitサンプル, exitsample.lua" , "加速度センササンプル, gsensorsample.lua" , "ラジオボタンサンプル, radiobuttonsample.lua" , "リストサンプル, listsample.lua" , "エディットサンプル, editlua.lua" , "画像ファイルサンプル, bitmapsample.lua" , "チェックリストサンプル, checklist.lua" , "文字表示サンプル, textsample.lua" , "グラフィックサンプル, graphicsample.lua" , "Dialogのサンプル, dialogsample.lua" , "文字入力サンプル, textinput.lua" , "画面タッチサンプル,touchsample.lua" , "簡単Lua電卓, dentaku.lua" , "明示的アプリ呼び出しサンプル, explicitsample.lua" , "暗黙のアプリ呼び出しサンプル, implicitsample.lua" , "ルアリダアプリ選択メニュ, luarida.lua" } Path="/sdcard/luarida/" --luaファイルを保存しているPath ------------------------------------------ mt={} mt.__newindex=function(mtt,mtn,mtv) dialog( "Error Message", "宣言していない変数 "..mtn.." に値を入れようとしています", 0 ) touch(3) end mt.__index=function(mtt,mtn) dialog( "Error Message", "変数 "..mtn.." は宣言されていません", 0 ) touch(3) end setmetatable(_G,mt) --------以下が実プログラム---------------- ------------------------------------------ --文字の分解 ------------------------------------------ function split(str, d) local s = str local t = {} local p = "%s*(.-)%s*"..d.."%s*" local f = function(v) table.insert(t, v) end if s ~= nil then string.gsub(s, p, f) f(string.gsub(s, p, "")) end return t end ------------------------------------------ --メインプログラム ------------------------------------------ function main() local t={} local tmenu={} local a, i local key local value local x, y, b canvas.drawCls( color(0,0,255) ) --背景を青に item.clear() --item Listのclear --menuテーブルを分解してitem Listに追加していく for key,value in pairs( Menu ) do t = split( value, "," ) item.add( t[1], 0 ) tmenu[key] = t[2] --実行ファイル名をtmenuに取得 end --リスト選択 a = item.list("Luarida Ver."..system.version().." 2タッチでエディタが立ち上がります" ) if( a~=0 )then for i=1, 300 do x, y, b = touch() if( b~=1 )then --エディタ起動 system.impCallActionView("file://"..Path..tmenu[a], "text/plain") break end end system.setrun( Path..tmenu[a] ) else dialog( "Luaridaを終了します", "また使ってね", 1 ) --Luaridaを強制終了します system.exit() end end main()
2タッチでエディタが立ち上がります
luarida.luaの78行目からのforループの部分が、Ver1.20Betaで新規に追加された部分です。このループの間に、画面タッチが入ると、暗黙のintent呼び出しが行われる処理に入ります。結果して、選択したアプリファイルを編集するエディタを呼び出すことになります。
これで、Androidでの編集も楽になりました。また、動画にもあるように、sheditor liteを使えば、直接Luaridaを呼び出すことができます。