如果您不想浏览一些文字墙,请转到 tl;dr。
我想为 Android 创建一个文本冒险应用程序。
这将是巨大的,所以我想不是创建 10,000 个活动,而是只处理一个活动并绘制不同的内容 - 并且 - 根据用户现在所在的“页面”绘制不同的按钮。
IE
我们从第 0 页开始。
它向我们展示了类似的东西:
第 0 页
欢迎冒险家!你是什么性别?
[按钮 1 = 字符串“男性”转到第 1 页重绘活动] [按钮 2 = 字符串“女性”转到第 2 页重绘活动]
第 1 页
欢迎我的女士!
[button 1 = string "hello" go to page 3 redraw the Activity] [button 2 = string "bye" go to page 4 redraw the Activity]
欢迎好先生!
第 2 页 [按钮 1 = 字符串“hello”转到第 5 页重绘活动] [按钮 2 = 字符串“再见”转到第 6 页重绘活动]
正如你所看到的,它变得非常复杂。这只是我希望它如何工作的一个例子,游戏中的选择将比“你好”或“再见”更“一点”。
我需要一种方法来重绘 TextView 的内容和显示在下方的按钮,以及屏幕顶部的一些变量,如“健康”或“黄金”。所有在变量'page'被修改之后。
另一种选择是为每个选择创建不同的活动。可能传递变量 'health' 和 'gold' 会很容易,重绘会发生 onCreate 并且字符串已经在新活动的 XML 布局中到位。
但我不确定我是否要完成创建 10,000 个活动并在链接的变量之间传递变量的过程中进行编码。:/
有什么建议么?
TL;DR 我可以在始终保持同一个 Activity 的同时根据整数重绘 android 应用程序的内容吗?
这与我想要实现的目标相似:https: //play.google.com/store/apps/details? id=wizardsChoiceV1.toucher&hl=en
编辑 我现在得到的没有给我任何错误,但它不会切换屏幕。:/
package com.example.textadventure;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
public class MainActivity extends Activity implements OnClickListener {
public static int page = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
}
public void onClick(View view) {
onClick(view);
switch (view.getId()) {
case R.id.button1:
setContentView(R.layout.activity_main2);
break;
case R.id.button2:
setContentView(R.layout.activity_main);
break;
default:
//code..
break;
}
}
}