java - Android SDK - Eclipse - 如何在多个类中使用一段代码

标签 java android sdk

我是 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/

相关文章:

java - 如何在hibernate中映射java属性

java - ListView 内的复选框状态在 Android 中不能按相反顺序工作

java - getAdapterPosition recyclerview上的空对象引用

java - Jenkins maven无法在JDK中找到Javac编译器

java - Android 与 Eclipse 不兼容?

C++ 请有人可以解释这行代码吗?

android - 带有UBER sdk 0.5.1的Package Signed APK返回很多错误消息

sdk - 深度学习 DJI Mavic Pro 和 Guidance SDK 编程语言

java - 从java程序调用C编译器

Android debuggable=true with proguard 开启