在具有相同值的多个类中访问相同的变量

时间:2018-04-15 17:49:02

标签: android

我有两个类,我想访问唯一变量的值。在第一堂课中,我想设置一个' isToogleflagon = true'的值。在第二节课中,我想获得' IsToogleflagon'的价值。 这是我设置和获取IsToogleFlagon'

的地方
public class Toogleflag{
    private String _isToogleflagon;
    public Toogleflag(){}

    public  Toogleflag(String  isToogleflagon) {
            this._isToogleflagon=isToogleflagon;
            }

    public String get_isToogleflagon(){
          return _isToogleflagon; 
            }

    public void set_isToogleflagon(String isToogleflagon) {
           this._isToogleflagon = isToogleflagon;
             }

我想设置isToogleflagon =" true"的值在我的主要班级。以下是我主要课程的一部分。

public class MainActivity extends AppCompatActivity {

Toogleflag toogleflag1 = new Toogleflag();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
        ... 
        toogleflag1.set_isToogleflagon(GlobalVariables.TRUE);
         ...

Global.values(真)

public class GlobalVariables
{
public static String TRUE = "true";
public static String FALSE = "false";
}

这是我的第二堂课,我想获得isToogleflagon的价值,在这种情况下" true"

 public class secondclass {
    Toogleflag toogleflag2 = new Toogleflag();

   public void test{

     String test=toogleflag2.get_isToogleflagon();
  }

当我运行Class Secondclass时,' string test'的值没有分配值。我希望它被赋予" true"的值。任何关于如何解决这个问题的建议都非常感谢。

感谢, 吉姆

1 个答案:

答案 0 :(得分:0)

这种情况正在发生,因为您正在使用default / no参数构造函数创建一个新对象。使用默认构造函数创建对象时,所有实例变量都会使用其默认值进行初始化。例如,

1)int变量得 0 2)布尔变量得到 false 3)字符串变量获得 null

这种情况正在发生。正如你的代码中提到的那样,在main类中,当你使用String构造函数将值设置为名为 isToogleflagon 的变量时,它会被设置为构造函数传递的值,但是当你访问它的值时通过调用无参数构造函数再次变量,变量 isToogleflagon 也会使用defualt值进行初始化。要使所有应用程序的值保持一致,您需要将该类对象设置为Singleton。它将解决您的问题。希望你明白我的意思。以下是您制作单身人士的参考示例代码

public class Singleton {

   private static Singleton singleton = new Singleton( );

   /* A private Constructor prevents any other
    * class from instantiating.
    */
   private Singleton() { }

   /* Static 'instance' method */
   public static Singleton getInstance( ) {
  return singleton;

}

  /* Other methods protected by singleton-ness */
  protected static void demoMethod( ) {
  System.out.println("demoMethod for singleton");
  }

}