我是 Java (Eclipse) 新手,我想知道是否有任何方法可以使用某些代码创建文件并在类中调用它。 因为我有很多不同的类用于不同的结果,但有些代码不会从一个类更改为另一个类(例如菜单),并且当我必须调整该代码而不更改类时,我想让它更实用按类(class)。 有什么办法可以做到这一点吗?
最佳答案
我在我的项目中使用我称为 Helper 类的类来完成此任务。我从 GoogleIO 应用程序源代码中得到了这个想法。他们有一个名为 ActivityHelper 的类。它完全按照您所说的进行操作,将反复使用的代码放在一个地方。这是我的 MenuHelper 类作为示例。我的很多 Activity 的菜单都是相同的,所以这样做是有意义的......
public class MenuHelper {
public static void build(Menu menu) {
menu.add(Menu.NONE, Key.Activity.LOGOUT, 0, R.string.label_logout)
.setIcon(android.R.drawable.ic_menu_close_clear_cancel);
menu.add(Menu.NONE, Key.Activity.FEEDBACK, 0,
com.bytebenderapps.dbitly.R.string.label_feedback).setIcon(
android.R.drawable.ic_menu_send);
}
public static boolean onMenuItemSelected(int featureId, MenuItem item,
Context context) {
switch (item.getItemId()) {
case Key.Activity.LOGOUT:
removeCredentials(context);
startLoginActiviy(context);
break;
case Key.Activity.FEEDBACK:
startFeedbackActivity(context);
break;
}
return true;
}
private static void startLoginActiviy(Context context) {
Intent intent = new Intent(context, LoginActivity.class);
context.startActivity(intent);
}
private static void removeCredentials(Context context) {
Editor editor = PreferenceManager.getDefaultSharedPreferences(context)
.edit();
editor.clear();
editor.commit();
}
public static void toggleLogoff(Menu menu, boolean userLoggedIn) {
MenuItem item = menu.findItem(Key.Activity.LOGOUT);
item.setEnabled(userLoggedIn);
}
private static void startFeedbackActivity(Context context) {
context.startActivity(new Intent(context, FeedbackActivity.class));
}
}
然后在我的一项 Activity 中实现
public class MyActivity {
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuHelper.build(menu);
return true;
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
super.onMenuItemSelected(featureId, item);
return MenuHelper.onMenuItemSelected(featureId, item, this);
}
}
关于java - Android SDK - Eclipse - 如何在多个类中使用一段代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9468934/