我在Android中很新,我不知道如何管理静态常量的正确方法。我的意思是,我需要在几个Java类和活动中使用几个常量(例如COMMAND_BACK = 100
)。在每个单独的活动中将它们声明为属性并不美观,这样做的正确方法是什么?
我虽然在strings.xml
声明了它们,但它似乎也不合适......
提前致谢。
答案 0 :(得分:1)
通过在resource.xml文件中声明它的缺点是您需要一个上下文来接收该值。只要您在上下文类中需要这些值,这是很好的,否则您必须传递一个。
优雅的解决方案是扩展Application
类,因为android os本身使用静态字段。
答案 1 :(得分:1)
你可以创建一个这样的类:
public final class AppConstants {
//put all the constant here
// Eg :
public static final int SPLASH_TIME = 1000;
}
答案 2 :(得分:1)
将Constants类添加到项目
public class Constants {
public static final String STRING1 = "First String";
public static final String STRING2 = "Second String";
public static final int INTEGER1 = 1;
public static final float FLOAT1 = 0.1f;
}
// Use
textView.setText(Constants.STRING1);
答案 3 :(得分:1)
<强>声明强>
public final class ConstantClass {
public final static int COMMAND_BACK = 100;
}
<强>用法强>
int num = ConstantClass.COMMAND_BACK;
答案 4 :(得分:0)
创建一个公共接口,您可以在其中声明所有常量。可以在此处对常量组进行分组以使其模式清洁。
public interface Constants {
public interface XYZ{
public static final int A= 1;
public static final int B= 2;
}
public interface REPORT_TYPE_FLAGS{
public static final String C= "0";
public static final String D= "1";
}
}
答案 5 :(得分:0)
另一种优雅的方法是使用其他内部子类
定义常量类`private final class Constant {
public static class TypeOne {
public static final String NAME = "Type 1";
public static final int CODE = 1;
}
public static class TypeTwo {
public static final String NAME = "Type 2";
public static final int CODE = 2;
}
}
`
你可以这样访问它
`String typeOneName = Constant.TypeOne.NAME;
int typeTwoCode = Constant.TypeTwo.CODE;
`