【发布时间】:2023-04-05 09:47:01
【问题描述】:
我正在为 Android 编写一个基于文本的 RPG 游戏,以便让自己熟悉 Java 和 XML。我想在按钮的 ListView 中显示一个字符串选择数组,并且根据用户按下的按钮,我想用一组新的选择相应地更新活动。
例如,假设游戏从以下选项开始:
{option1, option2, option3, option4}
如果用户点击我想要显示的选项 2:
{2-option1, 2-option2, 2-option3, 2-option4}
或者假设用户点击了 4 而不是 2。然后:
{4-option1, 4-option2, 4-option3, 4-option4}
所以,我正在尝试确定一种速度高效/内存高效的方式来确定下一个要显示的String[]。
最初我正在考虑构建一个巨大的 if-then-else 树(或 switch 语句 - 没关系),其中每个可能的选项都有一个 if 语句。 例如:
//choice是用户选择的选项
if(choice==option1){
return {"1-option1", "1-option2", "1-option3"}
}else if(choice== 1-option1 ){
return {"1-1-option1","1-1-option2","1-1-option3"}
List 会一直持续下去,直到每个可能的选择都返回一个 String[],它对应于要显示的下一组选项。
然后,我开始想也许用对象来做这件事会更干净、更容易:
MyObject newObject = MyObject(choice)
newObject.getOptions()
其中choice 是一个构造函数参数,它将String[] 初始化为正确的下一组选项; getOptions() 返回这个String[]
但是,这将是很多对象,我不确定它是否会简化 if/switch 语句方法。
那么,对于处理此类事情的有效方法有什么想法吗?
【问题讨论】:
-
丑陋、易碎、无法维护。在考虑效率之前,您应该先考虑这些问题。
-
我同意,这就是为什么我想用适当的结构解决这个“难题”,我认为我提出的 if/switch 语句方法或对象方法是不够的。跨度>
-
它有2个以上的级别吗?它可以在 XML 中定义并解组为一组分层的选项集对象。
-
就个人而言,我发现很难从这个示例中辨别出您真正需要做什么。按钮和字符串数组示例不适合我。
-
听起来像一棵树或图。每个选择都是一个状态,选择是一个转换到新状态的事件。我会选择配置 XML 或 JSON 的状态机。
标签: java android if-statement switch-statement