2013-02-09 88 views
1

我想希望在我的项目通过或分享登入画面数据(值)的所有帧,H取得了类此变量这样如何将数据从一个框架传递给另一个以及项目中的所有其他框架?

public class SharedData { 

    public String LoginName; 

    public SharedData() { 
    } 

    /** 
    * @return the LoginName 
    */ 
    public String getLoginName() { 
     return LoginName; 
    } 

    /** 
    * @param LoginName the LoginName to set 
    */ 
    public void setLoginName(String LoginName) { 
     this.LoginName = LoginName; 
    } 
} 

,并从第一帧(登入画面)我做这个类和对象设置它的用户名这样

public SharedData data1=new SharedData(); 
    data1.setLoginName(Username_Login.getText().toString()); 

,并从第二帧我得到的值:

public SharedData data=new SharedData(); 
ogin_labelName.setText(data1.getLoginName().toString()); 

但最后它母鹿无法工作......问题或解决方案是什么?

在此先感谢

+0

另一种选择是使用'Singleton'。这样你只能从类中获得一个实例,也不需要创建一个对象。 – 2013-02-09 11:50:04

回答

2

您可以创建一个bean类,如:

public class SharedData { 
     public static String LoginName; 

     public static void setLoginName(String LoginName) { 
      SharedData.LoginName = LoginName; 
     } 

     public static String getLoginName() { 
      return LoginName; 
     } 
    } 

而且使用这个类从另一种形式设置和获取一个值只是调用这个类设置一个值:

SharedData.setLoginName(Username_Login.getText().toString()); 

和得到一个值:

ogin_labelName.setText(SharedData.getLoginName(Username_Login.getText().toString())); 
+0

它与我合作...非常感谢 – 2013-02-09 16:58:32

+0

欢迎@AmrAhmed – Rajshri 2013-02-11 05:06:44

0

您正在第二帧中创建一个新的对象。显然,第二个对象不包含与第一个对象相同的数据。

如果你在一个盒子里放一个信息,并打开另一个盒子,你就不会在其中找到信息。与Java对象相同。

当登录框架构建主框架,它应该通过SharedData对象已经创建的主框架的构造函数(或者一个setter方法):

SharedData data1 = new SharedData(); 
data1.setLoginName(Username_Login.getText().toString()); 

MainFrame frame = new MainFrame(data1); 

你也应该学习Java命名约定和坚持他们。字段应以小写字母开头,并且不应包含下划线:userNameLogin而不是Username_Login。在字符串上调用toString()毫无意义。

相关问题