Java 如何在多个活动中包含相同的代码(Android Studio)
我有50项活动。每个活动都会随机打开新活动,如下所示: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
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项活动?你能重复使用其中一个而不是创建新的吗?我想它可能更具动态性,但每个活动都有不同的布局和内容。