# StockHoldTrack **Repository Path**: xaek/stock-hold-track ## Basic Information - **Project Name**: StockHoldTrack - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-02 - **Last Updated**: 2025-08-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 股票持仓跟踪应用 (Stock Hold Track) 一个简洁高效的 Android 股票持仓管理应用,帮助用户轻松跟踪和管理股票投资组合。 ## 📱 功能特性 ### 核心功能 - **股票管理**:添加、编辑、删除股票 - **持仓记录**:记录每次买入的股票数量和价格 - **自动计算**:自动计算持仓均价和总数量 - **数据持久化**:本地存储,数据安全可靠 ### 用户界面 - **现代化设计**:Material Design 3 风格 - **直观操作**:点击查看详情,长按删除 - **实时更新**:数据变化实时反映在界面上 - **响应式布局**:适配不同屏幕尺寸 ### 数据管理 - **智能删除**:有持仓的股票无法删除,防止误操作 - **数据同步**:跨页面数据实时同步 - **状态保持**:应用重启后数据不丢失 ## 🛠️ 技术栈 ### 前端技术 - **Jetpack Compose**:现代化 UI 框架 - **Material Design 3**:Google 设计规范 - **Kotlin**:主要开发语言 ### 架构组件 - **ViewModel**:UI 状态管理 - **StateFlow**:响应式数据流 - **DataStore**:本地数据存储 - **SharedPreferences**:数据持久化 ### 开发工具 - **Android Studio**:IDE - **Gradle**:构建工具 - **Git**:版本控制 ## 📋 系统要求 - **Android 版本**:Android 6.0 (API 23) 及以上 - **开发环境**:Android Studio Arctic Fox 或更高版本 - **Java 版本**:Java 11 或更高版本 ## 🚀 快速开始 ### 环境准备 1. 确保已安装 Android Studio 2. 克隆项目到本地 3. 打开项目并同步 Gradle 依赖 ### 构建运行 ```bash # 克隆项目 git clone https://github.com/your-username/stock-hold-track.git # 进入项目目录 cd stock-hold-track # 构建项目 ./gradlew assembleDebug # 安装到设备 ./gradlew installDebug ``` ### 使用说明 #### 添加股票 1. 点击底部"新建股票"按钮 2. 输入股票名称和代码 3. 点击"确认"完成添加 #### 管理持仓 1. 点击股票卡片进入详情页 2. 点击"新建持仓"添加买入记录 3. 系统自动计算持仓均价和数量 #### 删除股票 1. 长按股票卡片 2. 确认删除(仅限无持仓的股票) ## 📁 项目结构 ``` stock-hold-track/ ├── app/ │ ├── src/main/ │ │ ├── java/com/example/stockholdtrack/ │ │ │ ├── data/ │ │ │ │ ├── Models.kt # 数据模型 │ │ │ │ └── StockDataStore.kt # 数据存储 │ │ │ ├── ui/ │ │ │ │ ├── StockViewModel.kt # 主页面 ViewModel │ │ │ │ └── StockDetailViewModel.kt # 详情页 ViewModel │ │ │ ├── MainActivity.kt # 主页面 │ │ │ └── StockDetailActivity.kt # 详情页面 │ │ └── res/ # 资源文件 │ └── build.gradle.kts # 应用构建配置 ├── build.gradle.kts # 项目构建配置 ├── gradle.properties # Gradle 属性 └── README.md # 项目说明 ``` ## 🔧 开发指南 ### 代码规范 - 使用 Kotlin 编码规范 - 遵循 Android 开发最佳实践 - 添加适当的注释和文档 ### 调试技巧 - 使用 `println("DEBUG: ...")` 进行调试 - 查看 `DEBUG_SUMMARY.md` 了解常见问题 - 使用 Android Studio 的调试工具 ### 数据流 ``` 用户操作 → ViewModel → DataStore → SharedPreferences ↓ StateFlow → UI 更新 ``` ## 🐛 常见问题 ### 数据不刷新 - 检查 `StockDataStore` 的数据同步机制 - 确保 `getAllStocksSync()` 从 SharedPreferences 读取最新数据 - 参考 `DEBUG_SUMMARY.md` 中的解决方案 ### 删除操作异常 - 确保使用 `id` 而不是 `code` 作为唯一标识符 - 检查持仓数量,有持仓的股票无法删除 ### 手势冲突 - 使用 `pointerInput` 统一处理点击和长按手势 - 避免 `clickable` 和 `pointerInput` 同时使用 ## 🤝 贡献指南 ### 提交 Issue 1. 使用 Issue 模板 2. 详细描述问题和复现步骤 3. 提供设备信息和系统版本 ### 提交代码 1. Fork 项目 2. 创建功能分支 3. 提交 Pull Request 4. 确保代码通过测试 ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 🙏 致谢 - [Jetpack Compose](https://developer.android.com/jetpack/compose) - 现代化 UI 框架 - [Material Design](https://material.io/) - 设计规范 - [Android 开发者文档](https://developer.android.com/) - 技术参考 ## 📞 联系方式 - **项目地址**:https://github.com/your-username/stock-hold-track - **问题反馈**:https://github.com/your-username/stock-hold-track/issues --- ⭐ 如果这个项目对您有帮助,请给我们一个星标!