我的MainActivity中有超过900行,因为我无法弄清楚如何让其他类工作。
它有效,但它使阅读变得困难和繁琐。
我将举例说明我想要分离到另一个类。
我想从主要活动中称之为。
MainActivity:
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();
}
答案 0 :(得分: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中,并在MainActivity中调用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();
}
答案 1 :(得分:1)
你可以在另一个类中编写你的apm方法。从mainActivity中,您可以实例化该类并将活动的上下文传递给类的构造函数。
然后从mainActivity,只需使用类实例调用该类的方法。
我希望你明白我想说的话。在新类中,您可以使用在构造函数中收到的上下文来访问mainActivity组件。