@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;
}()
//自定义控件 tabs
var 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("▼");