我一直试图找到一种方法来为一个类设置变量,而在另一个类中改变意图。也许我正在寻找错误的东西,也许我已经过度复杂了,我不知道。
基本上,我现在正在做的是获取所选的listView项,检查其索引值,并根据选择来修改一个或两个变量(来自不同的类)。
public void onItemClick(AdapterView<?> parent, View v, int position, long id){
theGame settings = null;
switch(position){
case 0:
settings.baseWave = 10;
settings.baseRate = 5;
break;
case 1:
settings.baseWave = 20;
settings.baseRate = 10;
break;
case 2:
settings.baseWave = 30;
settings.baseRate = 15;
break;
}
}
“theGame”是我的外部类,“baseWave”和“baseRate”是相应的varriables。显然,我在这里所做的并不适合我。我是相当新的,所以要温柔。
感谢您提供任何帮助,非常感谢:)
〜TG
答案 0 :(得分:2)
很高兴让你觉得你可能有一个糟糕的设计,但它也应该让你觉得你不懂Java,因为你不了解Java而遇到这个问题,而且好的Java书可以帮到你。
嗯,这是让你的工作尝试工作的最短路径:让游戏在静态成员中存储对自身的引用;在代码中使用静态成员。
即,
class TheGame {
public static TheGame theGame = null;
TheGame() {
theGame = this;
}
}
其他地方:TheGame.theGame.baseWave = 10 * (position + 1);
或者您可能需要这样:
public class TheGame extends Activity {
public static TheGame theGame = null;
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
theGame = this;
}
}
一本好的Java书会向你描述这种事情,给你一个名字,然后警告你远离它。