Java 如何在多个活动中包含相同的代码(Android Studio)

Java 如何在多个活动中包含相同的代码(Android Studio),java,android,Java,Android,我有50项活动。每个活动都会随机打开新活动,如下所示: public void openNewActivity(View view) { Random generator = new Random(); int number = generator.nextInt(50) + 1; Class activity = null; switch(number) { case 1: activity = ActivityNumber1.class; break; case 2: activit

我有50项活动。每个活动都会随机打开新活动,如下所示:

public void openNewActivity(View view) {

Random generator = new Random();
int number = generator.nextInt(50) + 1;

Class activity = null; 

switch(number) {
case 1: activity = ActivityNumber1.class; break;
case 2: activity = ActivityNumber2.class; break;
...
case 50: activity = ActivityNumber50.class; break;}

Intent intent = new Intent(this, activity);
    startActivity(intent);
public class Util  
{
  public static Class getRandomActivityClass(){
    Random generator = new Random();
    int number = generator.nextInt(50) + 1;
    Class activity = null; 
    switch(number) {
      case 1: activity = ActivityNumber1.class; break;
      case 2: activity = ActivityNumber2.class; break;
      ...
      case 50: activity = ActivityNumber50.class; break;
   }
   return activity;    
  }
}
现在,我怎样才能只编写一次代码,并将其包含在每个活动中

我已经有了public int,用于保存活动之间要使用的数值:

public class counter_global extends Application...

将其封装在类中,以便可以根据需要重用:

class NewActivity
{
    static void openRandom()
    {
        // Insert your code here.
    }
}
然后在你的活动中:

NewActivity.openRandom();

您应该创建一个全局抽象活动类“MainActivity”,并使每个活动继承该类。因此,任何子活动都将继承您的代码,并且在任何地方都可用

例如:

public abstract class MainActivity extends Activity {
    public void openNewActivity(View view) {

    Random generator = new Random();
        int number = generator.nextInt(50) + 1;

        Class activity = null; 

        switch(number) {
        case 1: activity = ActivityNumber1.class; break;
        case 2: activity = ActivityNumber2.class; break;
        ...
        case 50: activity = ActivityNumber50.class; break;}

        Intent intent = new Intent(this, activity);
        startActivity(intent);
    }
}
还有你的子类活动

public class OwnActivity1 extends MainActivity {


}

在您自己的Activity1中,方法“openNewActivity”将可用,您可以在需要的地方调用它。这种方法的主要优点是,如果需要的话,可以在以后一次对所有活动进行更改。例如,您可以在MainActivity上进行更改,在右上角添加一个“参数”按钮,或设置背景色、上下文菜单或操作栏等任何内容。

1-创建如下类:

public void openNewActivity(View view) {

Random generator = new Random();
int number = generator.nextInt(50) + 1;

Class activity = null; 

switch(number) {
case 1: activity = ActivityNumber1.class; break;
case 2: activity = ActivityNumber2.class; break;
...
case 50: activity = ActivityNumber50.class; break;}

Intent intent = new Intent(this, activity);
    startActivity(intent);
public class Util  
{
  public static Class getRandomActivityClass(){
    Random generator = new Random();
    int number = generator.nextInt(50) + 1;
    Class activity = null; 
    switch(number) {
      case 1: activity = ActivityNumber1.class; break;
      case 2: activity = ActivityNumber2.class; break;
      ...
      case 50: activity = ActivityNumber50.class; break;
   }
   return activity;    
  }
}
并在每项活动中使用它:

Intent intent = new Intent(this, Util.getRandomActivityClass());
startActivity(intent);
2-您可以创建基本活动类,将方法置于基础上,并从基类继承活动:

public class BaseActivity extends ActionBarActivity {

   public void runRandomActivityClass(){
    Random generator = new Random();
    int number = generator.nextInt(50) + 1;
    Class activity = null; 
    switch(number) {
      case 1: activity = ActivityNumber1.class; break;
      case 2: activity = ActivityNumber2.class; break;
      ...
      case 50: activity = ActivityNumber50.class; break;
    }

    Intent intent = new Intent(this, activity);
    startActivity(intent); 
  }

}

50项活动?你能重复使用其中一个而不是创建新的吗?我想它可能更具动态性,但每个活动都有不同的布局和内容。