在Android

时间:2017-06-27 10:42:24

标签: java android

我在Android中很新,我不知道如何管理静态常量的正确方法。我的意思是,我需要在几个Java类和活动中使用几个常量(例如COMMAND_BACK = 100)。在每个单独的活动中将它们声明为属性并不美观,这样做的正确方法是什么?

我虽然在strings.xml声明了它们,但它似乎也不合适......

提前致谢。

6 个答案:

答案 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;
`