【问题标题】:Android Helper classesAndroid 助手类
【发布时间】:2014-04-06 08:18:59
【问题描述】:

我的 android 应用程序中有几个方法我想在多个活动中重用,因为它是一个 Java 帮助类,我没有从任何东西扩展。我有两个问题,第一个是如何将上下文传递给 java 类,第二个是如何使用从辅助类中的活动扩展的方法,下面是我的辅助类:

Java 类

public class ScreenHelper {
    Context context;
    public ScreenHelper(Context ctx) {
        this.context = ctx;
    }

    public int getStatusBarHeight(layout layout) {
        Rect r = new Rect();
        Window w = (Window) getWindow();
        w.getDecorView().getWindowVisibleDisplayFrame(r);
        return r.top;
    }

    public int getScreenHeight() {
        DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
        int ScreenHeight = metrics.heightPixels;
        return ScreenHeight;
    }

    public int getTitleBarHeight() {
        RelativeLayout relaLayout = (RelativeLayout) findViewById(R.id.title_bar);
        int titleHeight = relaLayout.getHeight();

        Log.d("Title Height","Title Height:" + titleHeight);
        return titleHeight;
    }
}

任何帮助将不胜感激。

【问题讨论】:

    标签: java android android-context


    【解决方案1】:

    首先是如何将上下文传递到java类中

    您可以将它作为每个方法的参数传递。此外,为了更容易访问,您可以将这些方法设为最终静态。

    如何使用从辅助类中的活动扩展而来的方法, 下面是我的助手类。

    这听起来像是糟糕的应用程序逻辑设计。从 Activity 类继承的方法应该是可见的,并且只能从 Activity 子类中使用。

    但如果你真的需要它,你也可以将 Activity 作为方法参数传递,但我建议你找到另一种方式。

    更新:

    如何将上下文作为每个方法的参数传递?

    方法示例:

    public static final void foo(Context c, int value, String message) {
       // do your stuff
    }
    

    【讨论】:

    • 好吧,我需要使用此代码的类扩展我的 menuActivity,它扩展了 SherlockActivity,这不是一个好的设计吗?我将如何以不同的方式去做呢?那么如何将上下文作为每个方法的参数传递呢?代码示例会很有帮助
    【解决方案2】:

    为什么不在所有这些方法中使用抽象BaseActivity?并在所有其他 Activities 中扩展这个类?

    【讨论】:

    • 那我该怎么做呢?另外,如果我想使用此代码的类已经从另一个类扩展,我将如何做到这一点?谢谢
    【解决方案3】:

    为什么你不能将活动和上下文引用传递给你的助手类并做必要的事情?

    这将确保您可以根据需要调用这两个对象的所有方法。

    同样的类也可以用于未来的开发。

    【讨论】:

    • 它不会帮助你,但是如果我与你分享。真诚地,我没有任何代码。因为,你的要求是不同的。
    • 我只是不知道如何传入上下文并使用从 java 类中的活动扩展而来的方法
    猜你喜欢
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    • 2021-02-06
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多