Java 在其他活动中调用类并更改其变量之一

Java 在其他活动中调用类并更改其变量之一,java,android,Java,Android,我正在做一个简单的游戏,我有3个关卡。我已完成活动1中的级别1。但是,由于level2中的代码除了一个变量外都是相同的,所以我想在activity2(level2)中扩展level1类,但我的类已经在扩展Activity类,在java中无法同时继承两个类,所以我决定在activity2(level2)中创建该类的对象,并在onCreate()中初始化它,但我面临一个问题,我有一个字符串数组变量,在level1中包含100个单词,我想在该字符串中再添加100个,使其在level2中为200。我该怎

我正在做一个简单的游戏,我有3个关卡。我已完成活动1中的级别1。但是,由于level2中的代码除了一个变量外都是相同的,所以我想在activity2(level2)中扩展level1类,但我的类已经在扩展Activity类,在java中无法同时继承两个类,所以我决定在activity2(level2)中创建该类的对象,并在onCreate()中初始化它,但我面临一个问题,我有一个字符串数组变量,在level1中包含100个单词,我想在该字符串中再添加100个,使其在level2中为200。我该怎么做呢。我不想在level2中复制level1的全部代码,然后仅仅更改变量,这是冗余的,一种糟糕的做法

这是我的意思的原型

活动1,第1级。下面是活动2,级别2

  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();
    }
}
我希望这对你有帮助