Java 在其他活动中调用类并更改其变量之一
我正在做一个简单的游戏,我有3个关卡。我已完成活动1中的级别1。但是,由于level2中的代码除了一个变量外都是相同的,所以我想在activity2(level2)中扩展level1类,但我的类已经在扩展Activity类,在java中无法同时继承两个类,所以我决定在activity2(level2)中创建该类的对象,并在onCreate()中初始化它,但我面临一个问题,我有一个字符串数组变量,在level1中包含100个单词,我想在该字符串中再添加100个,使其在level2中为200。我该怎么做呢。我不想在level2中复制level1的全部代码,然后仅仅更改变量,这是冗余的,一种糟糕的做法 这是我的意思的原型 活动1,第1级。下面是活动2,级别2Java 在其他活动中调用类并更改其变量之一,java,android,Java,Android,我正在做一个简单的游戏,我有3个关卡。我已完成活动1中的级别1。但是,由于level2中的代码除了一个变量外都是相同的,所以我想在activity2(level2)中扩展level1类,但我的类已经在扩展Activity类,在java中无法同时继承两个类,所以我决定在activity2(level2)中创建该类的对象,并在onCreate()中初始化它,但我面临一个问题,我有一个字符串数组变量,在level1中包含100个单词,我想在该字符串中再添加100个,使其在level2中为200。我该怎
public class Level1 extends Activity {
String words[ ] = {ball, game, food, bike, ...... ..}
//100 words
protected void on create(Bundle b){
super.onCreate(b);
setContentView(R.layout. level1)
}
}
public class level2 extends Activity{
Level1 level;
protected void onCreate (Bundle b){
super.onCreate(b);
setContentView(R.layout.level2);
level = new Level1();
//how can l add 100 more word in the string arrived
here
}
}
首先尝试将数据(单词)与UI(活动)分开。创建一个类,负责为活动提供数据
public class WordsProvider {
private String wordsForLevel1[] = {ball, game, food, bike, ...... ..};
private String wordsForLevel2[] = {words, you, want, to, add, to, first, array};
public String[] getWordsForLevel1() {
return wordsForLevel1;
}
public String[] getWordsForLevel2() {
return concat(wordsForLevel1, wordsForLevel2);
}
}
(可以找到concat方法)现在,你不必把你的活动结合起来。不建议手动实例化活动,让Android系统来完成这项工作。因此,您的代码将如下所示:
public class Level1 extends Activity {
String words[];
protected void on create(Bundle b) {
super.onCreate(b);
setContentView(R.layout.level1)
words = new WordsProvider().getWordsForLevel1();
}
}
public class Level2 extends Activity {
String words[];
protected void onCreate (Bundle b) {
super.onCreate(b);
setContentView(R.layout.level2);
words = new WordsProvider().getWordsForLevel2();
}
}
我希望这对你有帮助