解说社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 245|回复: 1

[原创] 光标跳转(输入数字跳转对应位置,或点击符号、行数跳转,或输入关键字跳转)v1.5

[复制链接]
发表于 2023-8-24 12:19:15 来自手机 | 显示全部楼层 |阅读模式
打开后有两个编辑框。第1个编辑框是输入数字用的,第2个编辑框是输入关键字用的。
接下来有5个按钮。第1个按钮是对应输入数字用的光标跳转。这里还会显示当前的字符数量。通过你输入的数字点击后会跳转到数字对应的位置。
第2、第3和第4个按钮是逗号、句号和行数跳转。这个不用输入。打开插件后,这三个按钮会显示总的逗号、句号和行数数量。点击后他会以列表形式列出来,每一个符号或者行数对应的地方会显示后面20个字,方便对照上下文。
最后一个按钮是关键字用的。对应是第2个编辑框输入的内容。这里只能输入单字,一个汉字,一个英文字母一个数字或者一个符号。输入后点击该按钮会列表形式列出。点击后会跳到对应位置。



  来自解说社区客户端
回复

使用道具 举报

 楼主| 发表于 2023-8-24 12:19:47 来自手机 | 显示全部楼层
require "import"
import "android.widget.*"
import "android.view.*"
local txt,a=service.getText(node),2
local t1,t2,t3,t4,t11,t21={},{},{},{},{},{}
for n=1,utf8.len(txt),1 do
if "。"==utf8.sub(txt,n,n)
j=utf8.sub(txt,n,n+20)
table.insert(t11,n)
table.insert(t1,n..j)
end
if ","==utf8.sub(txt,n,n)d=utf8.sub(txt,n,n+20)
table.insert(t21,n)
table.insert(t2,n..d)
end
if "\n"==utf8.sub(txt,n,n)
h=utf8.sub(txt,n,n+20)
table.insert(t3,a.."行"..h.."位置在"..n)
a=a+1
table.insert(t4,n)
end
end
layout=
{
LinearLayout,
orientation=1,
layout_width=-1,
layout_height=-1,
{
EditText,
hint="输入数字",
HintTextColor='#ff00ffff',
id="edit",
Gravity="center_horizontal",
textColor="#ff00ffff",
layout_width=-1,
layout_height="10%h",
layout_weight=1,
inputType="number"
},
{
EditText,
hint="输入关键字",
HintTextColor='#ff00ffff',
id="e2",
Gravity="center_horizontal",
textColor="#ff00ffff",
layout_width=-1,
layout_height="10%h",
layout_weight=1,
},
{Button,
text="光标跳转,共"..utf8.len(txt).."个字",
onClick="gbtz",
textColor="#ff00ffff",
layout_width=-1,
layout_height="10%h",
layout_weight=1,},
{Button,
text="逗号跳转"..string.format("共%d个逗号",#t2),
onClick="tzdh",
textColor="#ff00ffff",
layout_width=-1,
layout_weight=1,},
{Button,
text="句号跳转"..string.format("共%d个句号",#t1),
onClick="tzjh",
textColor="#ff00ffff",
layout_width=-1,
layout_weight=1,},
{Button,
text="按行跳转"..string.format("共%d行",#t4+1),
onClick="tzh",
textColor="#ff00ffff",
layout_width=-1,
layout_weight=1,},
{Button,
text="自定义跳转",
onClick="zdytz",
textColor="#ff00ffff",
layout_width=-1,
layout_weight=1,},
}
dlg=LuaDialog()
.setView(loadlayout(layout))
.show()
function gbtz()
dlg.hide()
if edit.text==""
print("请输入数字")
else
service.setSelection(node,tonumber(edit.text))
end
end
function tzdh()
dlg.hide()
require"import"
dlg=LuaDialog()
dlg.setTitle(string.format("共%d个逗号",#t2))
dlg.setItems(t2)
.show()
dlg.onItemClick=function(l,v,p,i)
dlg.dismiss()
service.setSelection(node,tonumber(t21))
end
end
function tzjh()
dlg.hide()
require"import"
dlg=LuaDialog()
dlg.setTitle(string.format("共%d个句号",#t1))
dlg.setItems(t1)
.show()
dlg.onItemClick=function(l,v,p,i)
dlg.dismiss()
service.setSelection(node,tonumber(t11))
end
end
function tzh()
dlg.hide()
require"import"
dlg=LuaDialog()
dlg.setTitle(string.format("共%d行",#t4+1))
dlg.setItems(t3)
.show()
dlg.onItemClick=function(l,v,p,i)
dlg.dismiss()
service.setSelection(node,tonumber(t4))
end
end
function zdytz()
dlg.hide()
require"import"
local t5,t51={},{}
for n=1,utf8.len(txt),1 do
if e2.text==utf8.sub(txt,n,n)
z=utf8.sub(txt,n,n+20)
table.insert(t5,n..z)
table.insert(t51,n)
end
end
local dlg=LuaDialog()
dlg.setTitle(string.format("共%d个",#t5))
dlg.setItems(t5)
.show()
dlg.onItemClick=function(l,v,p,i)
dlg.dismiss()
service.setSelection(node,tonumber(t51))
end
end
return true



  来自解说社区客户端
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|解说社区

GMT+8, 2024-5-3 20:40 , Processed in 0.043231 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表