2016-04-17 12 views
0

私はこのログイン/登録アプリを持っています。登録部分は2つの部分で構成されています。 (タブが2つあるTabPanel)。最初のタブは電子メールをチェックし、有効であれば2番目のタブのロックを解除します。 2番目のタブは実際の登録フォームです。タブから別のタブに切り替えるときに値を保存できませんJava GWT

最初のタブのメールを2番目のタブのメールとして使用したいので、ユーザーはそのメールにしか登録できないため、編集できません。 しかし、問題は、電子メールが2番目のタブに表示されないことです。なぜそれが起こっているのですか?

// variable declaration 
private static String email; 

// constructor 
public RegisterViewImpl() { 

    Widget tabBar = createRegistrationForm(); 
    tabPanel.add(tabBar); 

    initWidget(tabPanel); 
} 


private static Widget createRegistrationForm() { 

    TabPanel tabPanel = new TabPanel(); 

    // Create the e-mail tab 
    Widget emailCheckerWidget = createEmailChecker(); 
    tabPanel.add(emailCheckerWidget, RegistrationFormConstants.CHECK_EMAIL_TAB); 

    // Create the Personal Information Tab 
    Widget personalInformationWidget = createPersonalInformationWidget(); 
    tabPanel.add(personalInformationWidget, RegistrationFormConstants.DETAILS_TAB); 

... 
} 

private static Widget createEmailChecker() { 

... 

submitButton.addClickHandler(new ClickHandler() { 

     @Override 
     public void onClick(ClickEvent event) { 
      // this is how I save my email 
      email = emailBox.getText(); 
      checkIfEmailExists(email); 
      emailBox.setText(null); 
     } 
    }); 
... 
} 




private static Widget createPersonalInformationWidget() { 

... 

// E-Mail Address 
Label emailAddress = new Label("E-Mail Address"); 
final TextBox emailBox = new TextBox(); 
// this is how I want ot set it 
emailBox.setText(email); 
emailBox.setEnabled(false); 
emailBox.setStyleName("fixed-input"); 

... 
} 

答えて

0

あなたは、ユーザーが自分の電子メールに入る前にフォームを作成します。したがって、フォームには表示されません。 emailBox.setText(email);は、ユーザーが送信ボタンをクリックした後に呼び出される必要があります。

+0

まあありがとうございます。それは簡単だったし、気づかなかった... –

関連する問題