2013-02-09 53 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()毫無意義。

相關問題