我要求一个方法对整个Java项目是全局的,但我不确定如何继续。我正在为Android编程,但任何Java项目都是如此。
我希望以下方法可用于项目中的任何类:
public int dpToPx(int dp, Context c) {
DisplayMetrics displayMetrics = c.getResources().getDisplayMetrics();
int px = Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
return px;
}
我的想法是把它放在一个自己的类中,但随后出现了关于构造函数使用的问题。什么是最有效的方法呢?
答案 0 :(得分:3)
这样做的一种方便方法是使用静态方法创建实用程序类。
public class AppUtils {
public static int dpToPx(int dp, Context c) {
// your source code.
}
}
然后可以通过调用AppUtils.dpToPx()
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_activity);
int px = AppUtils.dpToPx(240, this);
}
}
答案 1 :(得分:2)
使方法静态是一个选择。如果你想在class1中调用class2,你应该在class2中实例化class1,那么只有你可以调用那个方法
答案 2 :(得分:1)
我会把它放在公共课中,并使这个方法公开和静态。
这样你就可以从任何地方调用它。
答案 3 :(得分:1)
如果可能,类上的公共静态方法是最简单的方法。
如果您需要维护全局应用程序状态,那么首选位置是Application子类。
然后,您可以根据需要使用getApplication()
或getApplicationContext()
来检索它。
答案 4 :(得分:1)
由于该方法必须可用于整个项目,我建议您create a class that is public and put the method inside it
。我不太确定你的意思是施工人员的问题。
此外,作为附加提示,您可以package the java file as a jar
并且也可以在不同的项目中使用它。
希望它有所帮助。 :)