@Author: 豆角酱油
@QQ: 2569767455@qq.com
@Date: 2024-07-01 13:00:00
@Version: 1.0.0-1
@LastEditors: 豆角酱油
@LastEditTime: 2025-2-11 20:33:37
@Description: 修复选择脚本时错误
xxxxxxxxxx"ui";
//tabs 数据var tabs_data = { //tabs 背景 bg: "#5a5c69", selectColor: { //当前页面选中颜色 on: "#00ffff", //当前页面未选中颜色 off: "#999999" }, //图标大小 srcSize: 28, //字体大小 textSize: 14, //动画缩放比例 未加入动画效果 zoom: 1.2, //是否显示指示器小横条 tabs_h: true, //tabs 按钮数据 data: [ ["主页", "@drawable/ic_favorite_border_black_48dp"], ["文本", "@drawable/ic_assignment_black_48dp"], ["设置", "@drawable/ic_settings_black_48dp"], ],}
//tabs按钮 布局视图信息var tabs_view = []//tabs按钮 当前选中按钮var selectView = 0;
//自定义控件 tabs按钮var Tabs_btn_layout = function () { //继承ui.Widget util.extend(Tabs_btn_layout, ui.Widget); function Tabs_btn_layout() { //调用父类构造函数 ui.Widget.call(this); //自定义属性data ,定义控件的每个参数 传入值为整数 this.defineAttr("data", (view, attr, value, defineSetter) => { //获取当前控件的参数值 tabs_data.data[value] 赋值到arr数组 arr = tabs_data.data[value] //设定 _text控件文本 view._text.setText(arr[0]) //设定 _src控件图片 view._src.attr("src", arr[1]) //把当前控件信息集合到tabs_view数组里面 tabs_view[tabs_view.length] = view //如果当前控件为初始值 则设定控件颜色为选中颜色 selectView==value==0 if (value == selectView) { view._src.attr("tint", tabs_data.selectColor.on)// 图片染色(选中色) view._text.setTextColor(colors.parseColor(tabs_data.selectColor.on)) // 文本设为选中色 } }); } Tabs_btn_layout.prototype.render = function () { return ( //1.0.0-1 修改 w="*" 参数 屏幕方向发生变化时 宽度自适配 <vertical id="_bg" w="*" bg="{{tabs_data.bg}}" padding="0 20" gravity="center" > <img w="{{tabs_data.srcSize}}" id="_src" tint="{{tabs_data.selectColor.off}}" /> <text w="auto" id="_text" textSize="{{tabs_data.textSize}}" textColor="{{tabs_data.selectColor.off}}" /> </vertical> ) } ui.registerWidget("tabs_btn-layout", Tabs_btn_layout); return Tabs_btn_layout;}()
//自定义控件 tabsvar Tabs_layout = function () { util.extend(Tabs_layout, ui.Widget); function Tabs_layout() { ui.Widget.call(this); this.defineAttr("data", (view, attr, value, defineSetter) => { //遍历 tabs_data.data数组 for (var i = 0; i < tabs_data.data.length; i++) { time = i //1.0.0-1 增加 layout_weight="1"参数 屏幕方向发生变化时 宽度自适配 ui.inflate(<tabs_btn-layout data="{{time}}" layout_weight="1" />, view._tabs, true) } //根据tabs_h值设置 _color颜色 tabs_data.tabs_h ? _color = tabs_data.selectColor.on : _color = "#00000000"; view.tabs.selectedTabIndicatorColor = colors.parseColor(_color);//设置tabs指示器颜色 }); } Tabs_layout.prototype.render = function () { return ( <card w="*" h="auto" cardElevation="5" foreground="?selectableItemBackground"> <horizontal id="_tabs" /> <tabs id="tabs" /> </card> ) } ui.registerWidget("tabs-layout", Tabs_layout); return Tabs_layout;}()
ui.layout( <frame id="dark"> <vertical> <appbar w="*" h="auto" bg="#5a5c69" > <toolbar id="toolbar" title="{{tabs_data.data[0][0]}}" gravity="center" /> </appbar> <viewpager w="*" id="viewpager" layout_alignParentBottom="true" > <!-- tab1-主页! --> <frame > <scroll gravity="center" padding="10" h="auto"> <card cardBackgroundColor="#5a5c69"w="*" margin="10 5" cardCornerRadius="5dp" cardElevation="1dp" gravity="center"foreground="?selectableItemBackground"> <vertical h="auto"> <text color="#b3b5c0" size="8"padding="5"text="脚本界面"/> <!-- 窗口1 --> <frame> <vertical padding="7" bg="#708090" layout_weight="1">
<card w="*" h="auto" margin="0" cardCornerRadius="5dp" cardBackgroundColor="#b0c4de" cardElevation="1dp" gravity="bottom" foreground="?selectableItemBackground"> <vertical> <text textSize="18sp" textStyle="bold" gravity="center">选择运行的脚本</text> <horizontal gravity="center" > <text textStyle="bold" >选择脚本-</text> <horizontal > <spinner id="sp1" entries="QQ名片点赞|QQ自动回复消息|微信发送天气信息" /> </horizontal> </horizontal> <frame w="200" h="40" id="click_me" layout_gravity="bottom|center" > <img w="200" h="30" src="#00000000" borderWidth="1dp" scaleType="fitXY" borderColor="#40a5f3" circle="true" /> <text h="30" text="运行选中脚本" gravity="center" textColor="#40a5f3" /> </frame> <frame w="200" h="40" id="click_rz" layout_gravity="bottom|center" > <img w="200" h="30" src="#00000000" borderWidth="1dp" scaleType="fitXY" borderColor="#40a5f3" circle="true" /> <text h="30" text="清除文本" gravity="center" textColor="#40a5f3" /> </frame> </vertical> </card> </vertical> </frame> <!-- 窗口1 end -->
<frame w="*" h="1" bg="#e3e3e3" />
<!-- 窗口2 --> <vertical padding="7" bg="#708090" layout_weight="1"> <card w="*" h="auto" margin="1" cardCornerRadius="5dp" cardBackgroundColor="#a8d8ea" cardElevation="1dp" gravity="bottom" foreground="?selectableItemBackground"> <vertical> <text textSize="18sp" textStyle="bold" gravity="center">插入文本</text> <vertical padding="16"> <input id="input" hint="请输入要插入的文本"/> <frame w="200" h="40" id="saveBtn" layout_gravity="bottom|center" > <img w="200" h="30" src="#00000000" borderWidth="1dp" scaleType="fitXY" borderColor="#40a5f3" circle="true" /> <text h="30" text="插入语录到首行" gravity="center" textColor="#40a5f3" /> </frame> <text id="status" textColor="gray"/> </vertical> </vertical> </card> </vertical> <!-- 窗口2 end -->
<frame w="*" h="1" bg="#e3e3e3" />
<!-- 窗口3 --><vertical padding="7" bg="#708090" layout_weight="1"> <card w="*" h="auto" margin="1" cardCornerRadius="5dp" cardBackgroundColor="#c8c2c6" cardElevation="1dp" gravity="bottom" foreground="?selectableItemBackground"> <vertical> <!-- 添加折叠/展开标题栏 --> <horizontal gravity="center" padding="5 5 5 5" clickable="true" id="foldHeader"> <text textSize="18sp" textStyle="bold" layout_weight="1" gravity="center" text="QQ点赞页列表"/> <text id="foldIcon" text="▼" textSize="18sp" padding="0 0 10 0"/> </horizontal> <!-- 可折叠内容区域 --> <vertical id="foldableContent" visibility="gone"> <ScrollView> <text id="content" textSize="16" textColor="black" layout_weight="1"/> </ScrollView>
<!-- 添加昵称输入框 --> <horizontal> <input id="inputNickname" hint="昵称" layout_weight="1"/> <input id="inputContent" hint="内容" layout_weight="2"/> <frame w="100" h="40" id="btnAdd" layout_gravity="bottom|center"> <img w="100" h="30" src="#00000000" borderWidth="1dp" scaleType="fitXY" borderColor="#40a5f3" circle="true"/> <text h="30" text="添加" gravity="center" textColor="#40a5f3"/> </frame> </horizontal>
<horizontal> <input id="inputIndex" hint="行号" inputType="number" layout_weight="1"/> <button id="btnDelete" text="删除行" layout_weight="1"/> <button id="btnUpdate" text="修改行" layout_weight="1"/> </horizontal>
<button id="btnSave" text="保存文件"/> </vertical> </vertical> </card></vertical>
<frame w="*" h="1" bg="#e3e3e3" /> <!-- 窗口4 --><vertical padding="7" bg="#708090" layout_weight="1"> <card w="*" h="auto" margin="1" cardCornerRadius="5dp" cardBackgroundColor="#c8c2c6" cardElevation="1dp" gravity="bottom" foreground="?selectableItemBackground"> <vertical> <!-- 添加折叠/展开标题栏 --> <horizontal gravity="center" padding="5 5 5 5" clickable="true" id="foldHeader2"> <text textSize="18sp" textStyle="bold" layout_weight="1" gravity="center" text="QQ发送消息列表"/> <text id="foldIcon2" text="▼" textSize="18sp" padding="0 0 10 0"/> </horizontal> <!-- 可折叠内容区域 --> <vertical id="foldableContent2" visibility="gone"> <ScrollView> <text id="content2" textSize="16" textColor="black" layout_weight="1"/> </ScrollView>
<!-- 添加昵称输入框 --> <horizontal> <input id="inputNickname2" hint="昵称" layout_weight="1"/> <input id="inputContent2" hint="内容" layout_weight="2"/> <button id="btnAdd2" text="添加" layout_weight="1"/> </horizontal>
<horizontal> <input id="inputIndex2" hint="行号" inputType="number" layout_weight="1"/> <button id="btnDelete2" text="删除行" layout_weight="1"/> <button id="btnUpdate2" text="修改行" layout_weight="1"/> </horizontal>
<button id="btnSave2" text="保存文件"/> </vertical> </vertical> </card></vertical>
<frame w="*" h="1" bg="#e3e3e3" />
<!-- 窗口5 --><vertical padding="7" bg="#708090" layout_weight="1"> <card w="*" h="auto" margin="1" cardCornerRadius="5dp" cardBackgroundColor="#c8c2c6" cardElevation="1dp" gravity="bottom" foreground="?selectableItemBackground"> <vertical> <text textSize="18sp" textStyle="bold" gravity="center">天气报告</text> <ScrollView> <!-- 使用多行文本框显示天气报告内容 --> <EditText id="weatherContent" w="*" h="200" textSize="16" inputType="textMultiLine" gravity="top" textColor="black" hint="天气报告内容将显示在这里"/> </ScrollView>
<!-- 操作按钮 --> <horizontal> <button id="btnRefreshWeather" text="刷新内容" layout_weight="1"/> <button id="btnSaveWeather" text="保存修改" layout_weight="1"/> </horizontal> </vertical> </card></vertical>
<horizontal padding="1" > <radiogroup id='fbName'> </radiogroup> </horizontal> <frame w="*" h="1" bg="#e3e3e3" />
<linear gravity="center"> <card w="*" h="250" cardBackgroundColor="#5a5c69" gravity="bottom" foreground="?selectableItemBackground"> <vertical > <text textSize="12sp" textStyle="bold" gravity="center" color="#c8c2c6">Author: 豆角酱油</text> <text textSize="12sp" textStyle="bold" gravity="center" color="#c8c2c6">QQ: 2569767455@qq.com</text> <text textSize="12sp" textStyle="bold" gravity="center" color="#c8c2c6">Date: 2024-07-01 13:00:00</text> <text textSize="12sp" textStyle="bold" gravity="center" color="#c8c2c6">Version: 1.1.0-1</text> <text textSize="12sp" textStyle="bold" gravity="center" color="#c8c2c6">LastEditors: 豆角酱油</text> <text textSize="12sp" textStyle="bold" gravity="center" color="#c8c2c6">LastEditTime: 2025-6-11 20:33:37</text> <text textSize="12sp" textStyle="bold" gravity="center" color="#c8c2c6">Description: 增加天气、送礼物、日志信息功能</text> </vertical> </card> </linear> </vertical> </card> </scroll> </frame> <!-- 主页end! --> <!-- tab2-日志! --> <frame> <vertical> <scroll gravity="center" > <card cardBackgroundColor="#5a5c69"w="*" margin="2 2" cardCornerRadius="5dp" cardElevation="1dp" gravity="center"foreground="?selectableItemBackground"> <vertical > <text color="000000" size="8"padding="5"text="txt文本记录" gravity="center" textSize="15SP"/> <card cardBackgroundColor="#5a5c69" margin="5 5" cardCornerRadius="5dp" cardElevation="1dp" h="auto" > <ScrollView> <text id="journal" textColor="white" textSize="12sp" /> </ScrollView> </card> </vertical> </card> </scroll> </vertical> </frame> <!-- 日志结束! --> <!-- tab3-设置! --> <frame> <vertical> <scroll gravity="center" padding="5"> <card cardBackgroundColor="#5a5c69"w="*" margin="10 5" cardCornerRadius="5dp" cardElevation="1dp" gravity="center"foreground="?selectableItemBackground"> <vertical > <text color="#b3b5c0" size="8"padding="5"text="应用设置"/> <card cardBackgroundColor="#5a5c69" margin="10 5" cardCornerRadius="5dp" cardElevation="1dp" h="auto" > <vertical> <frame w="*" h="1" bg="#e3e3e3" /> <Switch h="50" id="szBg" checked="false" text="暗黑模式" color="#b3b5c0" /> <list id="list" w="*" h="*" gravity="center" > <vertical w="*" h="50"> <frame w="*" h="1" bg="#e3e3e3" /> <text id="txt" w="auto" h="auto" textSize="14sp" color="#b3b5c0" gravity="center" text="{{txt}}"/> <text id="action" w="auto" h="auto" textSize="6sp" gravity="center" text="{{action}}"/> </vertical> </list> </vertical> </card> </vertical> </card> </scroll> </vertical> </frame> <!-- 设置结束! --> </viewpager> </vertical> <tabs-layout data="" layout_gravity="bottom" /> </frame>)
ui.tabs.setupWithViewPager(ui.viewpager);//绑定ViewPager到指示器
//页面更改侦听器ui.viewpager.setOnPageChangeListener({ //已选定页面发生改变时触发 onPageSelected: function (index) { //toastLog("上次选中" + tabs_view[selectView]._text.text()) if(tabs_view[selectView]._text.text()=="主页"){ readText() } //toastLog(tabs_view[index]._text.text()) //设置selectView上次页面 图案和字体颜色为未选中颜色 tabs_data.selectColor.off tabs_view[selectView]._src.attr("tint", tabs_data.selectColor.off) tabs_view[selectView]._text.setTextColor(colors.parseColor(tabs_data.selectColor.off)) //设置当前页面 图案和字体颜色为选中颜色 tabs_data.selectColor.on tabs_view[index]._src.attr("tint", tabs_data.selectColor.on) tabs_view[index]._text.setTextColor(colors.parseColor(tabs_data.selectColor.on)) //更改标题 title 内容 ui.toolbar.setTitle(tabs_view[index]._text.text()) //设置当前页面为 index selectView = index }})
/* =日志= */function readText(){ //以读取模式打开文件 file = open("./weather_send_log.txt", "r") var text = "" //读取剩余所有行并打印 for each(line in file.readlines()) { text+=line +"\n" + <br/> } ui.journal.setText(text) file.close()}//关闭指定应用程序function closeApp(packagename) { // 使用ADB命令强制停止微信应用 $shell("am force-stop " + packageName); sleep(1000)}
ui.szBg.on("check", (checked) => { // toastLog(checked) if (checked== false) {//这里autojs测试版7好像有问题只能这么写 ui.dark.attr("bg", "#b3b5c0")// 将按钮的背景颜色设置为橙色 }else { ui.dark.attr("bg", "#434551") } });
ui.szBg.click()
var items=[{action:"android.settings.ACCESSIBILITY_SETTINGS",txt:"无障碍"}, {action:"android.net.vpn.SETTINGS",txt:"vpn"}, {action:"android.settings.ACCESSIBILITY_SETTINGS",txt:"辅助功能"},{action:"android.settings.ADD_ACCOUNT_SETTINGS",txt:"添加账户"}, {action:"android.settings.SETTINGS",txt:"系统设置首页"},{action:"android.settings.APN_SETTINGS",txt:"APN设置"},{action:"android.settings.APPLICATION_SETTINGS",txt:"应用管理"}, {action:"android.settings.BATTERY_SAVER_SETTINGS",txt:"节电助手 "},{action:"android.settings.BLUETOOTH_SETTINGS",txt:"蓝牙 "},{action:"android.settings.CAPTIONING_SETTINGS",txt:"字幕 "},{action:"android.settings.CAST_SETTINGS",txt:"无线显示 "},{action:"android.settings.DATA_ROAMING_SETTINGS",txt:"移动网络 "},{action:"android.settings.DATE_SETTINGS",txt:"日期和时间设置"}, {action:"android.settings.DEVICE_INFO_SETTINGS",txt:"关于手机"}, {action:"android.settings.DISPLAY_SETTINGS",txt:"显示设置 "},{action:"android.settings.DREAM_SETTINGS",txt:"互动屏保设置 "},{action:"android.settings.HARD_KEYBOARD_SETTINGS",txt:"实体键盘 "},{action:"android.settings.HOME_SETTINGS",txt:"应用权限,默认应用设置,特殊权限 "},{action:"android.settings.IGNORE_BATTERY_OPTIMIZATION_SETTINGS",txt:"忽略电池优化设置 "},{action:"android.settings.INPUT_METHOD_SETTINGS",txt:"可用虚拟键盘设置 "},{action:"android.settings.INPUT_METHOD_SUBTYPE_SETTINGS",txt:"安卓键盘语言设置(AOSP) "},{action:"android.settings.INTERNAL_STORAGE_SETTINGS",txt:"内存和存储 "},{action:"android.settings.LOCALE_SETTINGS",txt:"语言偏好设置"}, {action:"android.settings.LOCATION_SOURCE_SETTINGS",txt:"定位服务设置 "},{action:"android.settings.MANAGE_ALL_APPLICATIONS_SETTINGS",txt:"所有应用"}, {action:"android.settings.MANAGE_APPLICATIONS_SETTINGS",txt:"应用管理 "},{action:"android.settings.MANAGE_DEFAULT_APPS_SETTINGS",txt:"与ACTION_HOME_SETTINGS相同"}, {action:"android.settings.action.MANAGE_OVERLAY_PERMISSION",txt:"在其他应用上层显示,悬浮窗"}, {action:"android.settings.MANAGE_UNKNOWN_APP_SOURCES",txt:"安装未知应用 安卓8.0 "},{action:"android.settings.action.MANAGE_WRITE_SETTINGS",txt:"可修改系统设置 权限 "},{action:"android.settings.MEMORY_CARD_SETTINGS",txt:"内存与存储 "},{action:"android.settings.NETWORK_OPERATOR_SETTINGS",txt:"可用网络选择"}, {action:"android.settings.NFCSHARING_SETTINGS",txt:"NFC设置 "},{action:"android.settings.NFC_SETTINGS",txt:"网络中的 更多设置 "},{action:"android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS",txt:"通知权限设置 "},{action:"android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS",txt:"勿扰权限设置 "},{action:"android.settings.ACTION_PRINT_SETTINGS",txt:"打印服务设置 "},{action:"android.settings.PRIVACY_SETTINGS",txt:"备份和重置 "},{action:"android.settings.SECURITY_SETTINGS",txt:"安全设置 "},{action:"android.settings.SHOW_REGULATORY_INFO",txt:"监管信息"}, {action:"android.settings.SOUND_SETTINGS",txt:"声音设置 "},{action:"android.settings.SYNC_SETTINGS",txt:"添加账户设置 "},{action:"android.settings.USAGE_ACCESS_SETTINGS",txt:"有权查看使用情况的应用 "},{action:"android.settings.USER_DICTIONARY_SETTINGS",txt:"个人词典 "},{action:"android.settings.VOICE_INPUT_SETTINGS",txt:"辅助应用和语音输入 "},{action:"android.settings.VPN_SETTINGS",txt:"VPN设置 "},{action:"android.settings.VR_LISTENER_SETTINGS",txt:"VR助手 "},{action:"android.settings.WEBVIEW_SETTINGS",txt:"选择webview "},{action:"android.settings.WIFI_IP_SETTINGS",txt:"高级WLAN设置 "},{action:"android.settings.WIFI_SETTINGS",txt:"选择WIFI,连接WIFI "}];
ui.list.setDataSource(items);
ui.list.on("item_click", function( item, itemView){ //toast( item.txt + "\n" + item.action); //toast(itemView);try{var intent = new Intent(); intent.setAction(item.action);app.startActivity(intent);}catch(e){toast("错误");}});
ui.click_me.on("click", ()=>{ var i = ui.sp1.getSelectedItemPosition(); if((i+1)==1){ $engines.startFloatingController("./autoQQ1.js");} if((i+1)==2){ $engines.startFloatingController("./autoQQ2.js");} if((i+1)==3){ $engines.startFloatingController("./wx.js");}});
ui.click_rz.on("click", ()=>{ // 定义文件路径 var path = "./messages.txt"; // 清除文件内容 files.write(path, "");});
单选按钮集合=[]ui.post( function(){ var count=ui.fbName.getChildCount() for(var i=0;i<count;i++){ var view=ui.fbName.getChildAt(i) var id=view.id var content=view.getText().toString() 单选按钮集合.push({ num:i, id:id, content:content, }) } //log(单选按钮集合) })
function getAttr(obj) { var attrs = [] for (var k in obj) { attrs.push(k) } attrs.sort() log( attrs)}
// 文件路径(根据需求修改)const filePath = "messages.txt";
// 保存按钮点击事件ui.saveBtn.click(() => { let newContent = ui.input.text(); if (!newContent) { ui.status.text("内容不能为空"); return; }
try { // 读取现有内容 let oldContent = ""; if (files.exists(filePath)) { oldContent = files.read(filePath); } // 合并内容(新内容 + 换行 + 旧内容) let finalContent = newContent + "\n" + oldContent; // 写入文件 files.write(filePath, finalContent); // 清空输入框并提示 ui.input.text(""); ui.status.text("成功插入到文件开头"); toast("写入成功"); } catch (e) { ui.status.text("写入失败: " + e); toastLog("错误: " + e); }});
// 初始化提示ui.status.text("文件将保存到:" + filePath);
let lines = [];
function loadFile(str) { try { if (!files.exists(str)) { files.createWithDirs(str); files.write(str, ''); } const fileContent = files.read(str); // 初始化时自动生成昵称 lines = fileContent.split('\n').map((content, index) => ({ nickname: `${index + 1}`, content: content.trim() })); refreshDisplay(); } catch (e) { toastLog('文件加载失败: ' + e); }}
function refreshDisplay() { // 显示昵称和内容 const displayText = lines.map((line, index) => `${line.nickname}: ${line.content}` ).join('\n'); ui.content.setText(displayText);}
// 添加行(需要昵称和内容)ui.btnAdd.click(() => { const nickname = ui.inputNickname.getText().toString().trim(); const content = ui.inputContent.getText().toString().trim(); if (nickname && content) { lines.push({ nickname, content }); ui.inputNickname.setText(''); ui.inputContent.setText(''); refreshDisplay(); }});
// 删除行(逻辑不变)ui.btnDelete.click(() => { try { const index = parseInt(ui.inputIndex.getText()) - 1; if (index >= 0 && index < lines.length) { lines.splice(index, 1); refreshDisplay(); } } catch (e) { toast('无效行号'); }});
// 修改行(同时更新昵称和内容)ui.btnUpdate.click(() => { try { const index = parseInt(ui.inputIndex.getText()) - 1; const newNick = ui.inputNickname.getText().toString().trim(); const newContent = ui.inputContent.getText().toString().trim(); if (index >= 0 && index < lines.length) { if (newNick) lines[index].nickname = newNick; if (newContent) lines[index].content = newContent; refreshDisplay(); } } catch (e) { toast('操作失败'); }});
/*// 保存文件(仅保存内容)ui.btnSave.click(() => { try { const contentToSave = lines.map(line => line.content).join('\n'); files.write(str, contentToSave); toast('保存成功'); } catch (e) { toast('保存失败'); }});*/
let lines2 = [];
function loadFile2(str) { try { if (!files.exists(str)) { files.createWithDirs(str); files.write(str, ''); } const fileContent = files.read(str); // 初始化时自动生成昵称 lines2 = fileContent.split('\n').map((content, index) => ({ nickname: `${index + 1}`, content: content.trim() })); refreshDisplay2(); } catch (e) { toastLog('文件加载失败: ' + e); }}
function refreshDisplay2() { // 显示昵称和内容 const displayText = lines2.map((line, index) => `${line.nickname}: ${line.content}` ).join('\n'); ui.content2.setText(displayText);}
// 添加行(需要昵称和内容)ui.btnAdd2.click(() => { const nickname = ui.inputNickname2.getText().toString().trim(); const content = ui.inputContent2.getText().toString().trim(); if (nickname && content) { lines2.push({ nickname, content }); ui.inputNickname2.setText(''); ui.inputContent2.setText(''); refreshDisplay2(); }});
// 删除行(逻辑不变)ui.btnDelete2.click(() => { try { const index = parseInt(ui.inputIndex2.getText()) - 1; if (index >= 0 && index < lines2.length) { lines2.splice(index, 1); refreshDisplay2(); } } catch (e) { toast('无效行号'); }});
// 修改行(同时更新昵称和内容)ui.btnUpdate2.click(() => { try { const index = parseInt(ui.inputIndex2.getText()) - 1; const newNick = ui.inputNickname2.getText().toString().trim(); const newContent = ui.inputContent2.getText().toString().trim(); if (index >= 0 && index < lines2.length) { if (newNick) lines2[index].nickname = newNick; if (newContent) lines2[index].content = newContent; refreshDisplay2(); } } catch (e) { toast('操作失败'); }});/*// 保存文件(仅保存内容)ui.btnSave2.click(() => { try { const contentToSave = lines2.map(line => line.content2).join('\n'); files.write(str, contentToSave); toast('保存成功'); } catch (e) { toast('保存失败'); }});*/
// 保存文件(仅保存内容) - 修改后ui.btnSave.click(() => { try { const contentToSave = lines.map(line => line.content).join('\n'); files.write(FILE_PATH, contentToSave); toast('保存成功'); } catch (e) { toast('保存失败: ' + e); }});
// 保存文件(仅保存内容) - 修改后ui.btnSave2.click(() => { try { const contentToSave = lines2.map(line => line.content).join('\n'); files.write(FILE_PATH2, contentToSave); toast('保存成功'); } catch (e) { toast('保存失败: ' + e); }});
// 删除原有的窗口五相关函数和事件// 移除以下内容:// - loadFile3函数// - refreshDisplay3函数// - btnAdd3、btnDelete3、btnUpdate3、btnSave3的点击事件处理// - 相关的lines3变量
// 添加天气报告相关功能const WEATHER_FILE = "./weather.txt";
// 加载weather.txt文件内容function loadWeatherFile() { try { if (!files.exists(WEATHER_FILE)) { files.createWithDirs(WEATHER_FILE); files.write(WEATHER_FILE, ''); toast("创建了新的weather.txt文件"); } const fileContent = files.read(WEATHER_FILE); ui.weatherContent.setText(fileContent); } catch (e) { toastLog('加载天气报告失败: ' + e); }}
// 刷新天气内容按钮ui.btnRefreshWeather.click(() => { loadWeatherFile(); toast("已刷新天气内容");});
// 保存天气内容按钮ui.btnSaveWeather.click(() => { try { const content = ui.weatherContent.getText().toString(); files.write(WEATHER_FILE, content); toast("天气报告已保存"); } catch (e) { toast("保存失败: " + e); }});
// 初始化时加载天气内容loadWeatherFile();
// 初始化加载loadFile(FILE_PATH);// 初始化加载loadFile2(FILE_PATH2);
// 窗口3折叠功能var isFolded = true;ui.foldHeader.on("click", () => { if (isFolded) { ui.foldableContent.setVisibility(android.view.View.VISIBLE); ui.foldIcon.setText("▲"); isFolded = false; } else { ui.foldableContent.setVisibility(android.view.View.GONE); ui.foldIcon.setText("▼"); isFolded = true; }});
// 初始化时确保内容区域是折叠的ui.foldableContent.setVisibility(android.view.View.GONE);ui.foldIcon.setText("▼");
// 窗口4折叠功能var isFolded2 = true;ui.foldHeader2.on("click", () => { if (isFolded2) { ui.foldableContent2.setVisibility(android.view.View.VISIBLE); ui.foldIcon2.setText("▲"); isFolded2 = false; } else { ui.foldableContent2.setVisibility(android.view.View.GONE); ui.foldIcon2.setText("▼"); isFolded2 = true; }});
// 初始化时确保内容区域是折叠的ui.foldableContent2.setVisibility(android.view.View.GONE);ui.foldIcon2.setText("▼");