Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android助手类_Java_Android_Android Context - Fatal编程技术网

Java Android助手类

Java Android助手类,java,android,android-context,Java,Android,Android Context,在我的android应用程序中,我有几个方法,我想在多个活动中重用它们,因为它是一个Java助手类,我没有从任何方面扩展它。我有两个问题,第一个是如何将上下文传递到java类,第二个是如何使用从helper类中的活动扩展而来的方法,下面是我的helper类: Java类 public class ScreenHelper { Context context; public ScreenHelper(Context ctx) { this.context = ctx

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

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;
    }
}

任何帮助都将不胜感激。

为什么不在所有这些方法中使用abstract
BaseActivity
?并在所有其他
活动中扩展此课程

第一个是如何将上下文传递到java类中

您可以将其作为每个方法的参数传递。此外,为了便于访问,您可以将这些方法设置为最终静态

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

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

但如果您确实需要它,也可以将活动作为方法参数传递,但我建议您找到另一种方法

更新: 如何将上下文作为每个方法的marameter传递

方法示例:

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

为什么不能将活动和上下文引用传递给助手类并执行必要的操作

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


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

那么我该怎么做呢?另外,如果我想要在其上使用此代码的类已经从另一个类扩展而来,我将如何做到这一点?感谢我需要使用这些类来扩展我的menuActivity,它扩展了SherlockActivity,这不是一个好的设计吗?我将如何以不同的方式去做呢?那么,如何将上下文作为每个方法的marameter传递?代码示例将非常有用,但如果我与您分享,它将不会帮助您。老实说,我没有任何代码。因为,您的需求是不同的,我只是不知道如何在java类中传递上下文并使用扩展自activity的方法