1

我的 MainActivity 中有超过 900 行,因为我不知道如何使其他类工作。

它可以工作,但它使阅读变得困难并且更新繁琐。

我将举一个例子,说明我想将什么分开到另一个班级。

我想从主要活动中调用它。

主要活动:

 public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.apm:
            apm();
            return true;
    }

}

public void apm() {

            AlertDialog levelDialog;
            final CharSequence[] items = {" Reboot ", " Reboot Recovery ", " Hot Reboot "};
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            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:
                            rooted();
                            reboot();
                            break;
                        case 1:
                            rooted();
                            recovery();
                            break;
                        case 2:
                            rooted();
                            softreboot();
                            break;
                        //case 3:
                        //shutdown();
                        //break;
                    }
                }
            });
            levelDialog = builder.create();
            levelDialog.show();

}
4

2 回答 2

3

在新文件 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);MainActivity。

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();

}
于 2013-08-14T02:06:13.843 回答
1

您可以在另一个类中编写您的 apm 方法。从您的 mainActivity,您可以实例化该类并将活动的上下文传递给该类的构造函数。

然后从 mainActivity,只需使用类实例调用该类的方法。

我希望你明白我想说什么。在您的新类中,您可以使用在构造函数中收到的上下文访问 mainActivity 组件。

于 2013-08-14T02:41:25.477 回答