Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何模块化长代码_Java_Android - Fatal编程技术网

Java 如何模块化长代码

Java 如何模块化长代码,java,android,Java,Android,我的主要活动中有900多行,因为我不知道如何让其他课程正常工作 它可以工作,但它使阅读变得困难,更新也变得乏味 我将给出一个例子,说明我想将什么内容分离到另一个类中 我想把这称为主要活动 主要活动: public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.apm: apm(); return tr

我的主要活动中有900多行,因为我不知道如何让其他课程正常工作

它可以工作,但它使阅读变得困难,更新也变得乏味

我将给出一个例子,说明我想将什么内容分离到另一个类中

我想把这称为主要活动

主要活动:

 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中的方法示例更新了我的解释。我需要知道如何在单独的类中使用附加的代码。我需要知道如何在单独的类中使用附加的代码。