Java 如何模块化长代码
我的主要活动中有900多行,因为我不知道如何让其他课程正常工作 它可以工作,但它使阅读变得困难,更新也变得乏味 我将给出一个例子,说明我想将什么内容分离到另一个类中 我想把这称为主要活动 主要活动:Java 如何模块化长代码,java,android,Java,Android,我的主要活动中有900多行,因为我不知道如何让其他课程正常工作 它可以工作,但它使阅读变得困难,更新也变得乏味 我将给出一个例子,说明我想将什么内容分离到另一个类中 我想把这称为主要活动 主要活动: public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.apm: apm(); return tr
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.apm:
apm();
return true;
}
}
在新文件Util.java中创建一个名为Util的新类(例如) 在这一类中,请输入:
public static void apm(MainActivity activity){
//Put the code from your old apm method here.
//Whenever you need to call a method that is part of MainActivity
//just prepend activity. in front of the method call.
}
然后在MainActivity中调用Util.apm(this)代码>
编辑:
这里有更多的细节。将以下内容放入Util.java并调用Util.apm(this)代码>在主活动中
public static void apm(MainActivity activity) {
AlertDialog levelDialog;
final CharSequence[] items = {" Reboot ", " Reboot Recovery ", " Hot Reboot "};
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("What do you want to do?");
builder.setCancelable(true);
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
switch (item) {
case 0:
activity.rooted();
activity.reboot();
break;
case 1:
activity.rooted();
activity.recovery();
break;
case 2:
activity.rooted();
activity.softreboot();
break;
//case 3:
//activity.shutdown();
//break;
}
}
});
levelDialog = builder.create();
levelDialog.show();
}
在新文件Util.java中创建一个名为Util的新类(例如)
在这一类中,请输入:
public static void apm(MainActivity activity){
//Put the code from your old apm method here.
//Whenever you need to call a method that is part of MainActivity
//just prepend activity. in front of the method call.
}
然后在MainActivity中调用Util.apm(this)代码>
编辑:
这里有更多的细节。将以下内容放入Util.java并调用Util.apm(this)代码>在主活动中
public static void apm(MainActivity activity) {
AlertDialog levelDialog;
final CharSequence[] items = {" Reboot ", " Reboot Recovery ", " Hot Reboot "};
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle("What do you want to do?");
builder.setCancelable(true);
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
switch (item) {
case 0:
activity.rooted();
activity.reboot();
break;
case 1:
activity.rooted();
activity.recovery();
break;
case 2:
activity.rooted();
activity.softreboot();
break;
//case 3:
//activity.shutdown();
//break;
}
}
});
levelDialog = builder.create();
levelDialog.show();
}
您可以在另一个类中编写apm方法。从mainActivity中,可以实例化该类,并将该活动的上下文传递给该类的构造函数
然后从mainActivity,使用类实例调用该类的方法
我希望你能理解我想说的话。在新类中,您可以使用构造函数中接收的上下文访问mainActivity组件。您可以在另一个类中编写apm方法。从mainActivity中,可以实例化该类,并将该活动的上下文传递给该类的构造函数
然后从mainActivity,使用类实例调用该类的方法
我希望你能理解我想说的话。在新类中,您可以使用构造函数中接收的上下文访问mainActivity组件。当您说MyActivity时,是指my mainActivity吗?我这样做了,但调用了Util.apm(this);必须与静态方法一起使用。。所以我不能做我想做的事情,因为我的apm方法不能是静态的。是的,你的主要活动。我不知道你说它不能是静态的是什么意思。如果传入activity,并在所有方法调用前加上activity.
,则它与非静态方法一样好。替换为AlertDialog.Builder(activity)代码>。在旧方法中,“this”一词指的是活动的实例,因此需要将其替换为传递到Util.apm(activity)的实例。我用Util中的方法示例更新了我的解释。当你说MyActivity时,你是指我的MainActivity吗?我这样做了,但调用了Util.apm(this);必须与静态方法一起使用。。所以我不能做我想做的事情,因为我的apm方法不能是静态的。是的,你的主要活动。我不知道你说它不能是静态的是什么意思。如果传入activity,并在所有方法调用前加上activity.
,则它与非静态方法一样好。替换为AlertDialog.Builder(activity)代码>。在旧方法中,“this”一词指的是活动的实例,因此需要将其替换为传递到Util.apm(活动)中的实例。我用Util中的方法示例更新了我的解释。我需要知道如何在单独的类中使用附加的代码。我需要知道如何在单独的类中使用附加的代码。