簡體   English   中英

具有兩個EditTexts的UI-當一個失去焦點時,如何捕獲任何已更改的文本?

[英]UI with two EditTexts - When one loses focus, how can I capture any text that was changed?

我的UI有兩個EditText字段。 當用戶選擇這些EditText中的一個,然后輸入一些數據,然后單擊第二個EditText時,第一個EditText中的信息就會丟失,它會還原為該字段中的原始內容。

例:

EditText 1 =“你好”

EditText 2 =“世界”

用戶點擊第一個EditText,並將文本更改為“ Hello”,然后按Enter:正常行為。 文本已保存。

用戶點擊第一個EditText,將文本更改為“ Hello”,然后點擊第二個EditText:錯誤行為。 EditText 1恢復為“ Hello”。

我該如何解決此問題? 兩個EditText使用相同的OnFocusChangeListener

 @Override
    public void onFocusChange(View v, boolean hasFocus) {
        String s = ((EditText) v).getText().toString().trim();
        s = s.replaceAll(",", ".");
        if (hasFocus) {
            System.out.println(s);
            //stuff
        } else {
            System.out.println(s);
            //other stuff
        }

我發現我可以得到在else塊中丟失的文本。 我可以使用它來設置EditText的文本。 但是,我遇到了一個新問題-如果添加單選按鈕,則當用戶從更改EditText變為單擊單選按鈕時,我不會在else塊中看到丟失的文本。 取而代之的是,我從else塊中看到了原始文本。

最簡單的解決方案是使用兩個單獨的OnFocusChangeListener類。 這是使用匿名內部類的好情況。

當edittext失去焦點時執行動作解決了我的第一個問題。

Android:在用戶完成編輯后評估EditText

這個問題的答案解決了我的第二個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM