Android Kotlin:AlertDialog输入文本存变量后跨Activity用作SQLite表名的实现问题
Android Kotlin开发场景下跨页值传递与动态表名SQLite实现故障
预期需求
- 在
MainActivity2中配置create按钮交互:点击后弹出搭载自定义布局的AlertDialog - 将对话框内用户输入的文本存入命名为
name的变量 - 后续以该
name值作为SQLite数据库的动态表名,覆盖三类核心能力:SQLiteOpenHelper类执行动态建表逻辑、其他业务Activity读取表名做页面展示、对接数据库完成目标表的读写操作
已完成的代码逻辑
MainActivity2模块- 为create按钮绑定点击事件,触发自定义布局AlertDialog弹出
- 在对话框「Accept」按钮的回调逻辑中,尝试获取对话框内EditText的输入文本,赋值给
name变量
AdminSQLiteOpenHelper模块- 试图通过直接实例化
MainActivity2的方式,读取其内部存储的name值,作为动态表名table_name - 在自身的
onCreate回调中执行SQLite动态建表语句 - 封装
insertData方法,实现向目标表写入数据的逻辑
- 试图通过直接实例化
Main2InsertActivity模块- 试图实例化
AdminSQLiteOpenHelper读取table_name值,展示在页面顶部的tituloTextView组件上 - 提供输入框交互,支撑用户向目标表录入数据
- 试图实例化
现存异常
- 无论用户在AlertDialog的输入控件中输入什么内容,
MainActivity2内部的name变量始终无更新 - 跨Activity、跨业务类无法获取到正确的
name值,直接导致动态建表、页面标题展示、数据插入三类逻辑全部失效 - 目前尚未定位问题根因,也未形成对应的修复方案
内容的提问来源于stack exchange,提问作者Weenhallo
相关产品推荐
相关产品推荐

