java - 如何仅在使用android中的textwatcher从edittext完成编辑后才将值添加到hashmap

标签 java android textwatcher

我有多个具有实现textwatcher的edittexts的LinearLayout,因此当我输入任何值时它会直接放入hashmap,但我想在完成编辑后添加完整的值,我的代码如下:

TextWatcher textwatcher = new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
            // TODO Auto-generated method stub

        }

        @Override
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable arg0) {
            // TODO Auto-generated method stub
            calculateInvoice();
            HashMap<String, String> descMap = new HashMap<String, String>();
            descMap.put("qty", et_qty.getText().toString() + "");
            descMap.put("upriz", et_unit_prize.getText().toString() + "");
            descMap.put("amt", subtotal + "");

            System.out.println("::::::::::::::::::MAP VALUES::::::::::" + descMap);

            descList.add(descMap);

        }
    };

最佳答案

让您拥有 5 个在 xml 文件中定义的 editText View 。假设它们是editText0、editText1...editText4。

现在在您的 Activity 类中,

1

构造一个字符串数组:String[] Data = new String[5]

2

将文本观察器分别添加到每个 EditText。像:

editText0.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}

            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,int arg3) {}

            @Override
            public void afterTextChanged(Editable Token) 
            {
                final int index = 0; // as this Text Watcher is specifically for editText0
                Data[index] = Token.toString();

            }
        });

3

类似地,将 TextWatcher 添加到所有剩余的 4 个 EditTextView。

关于java - 如何仅在使用android中的textwatcher从edittext完成编辑后才将值添加到hashmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24865127/

相关文章:

Java字符串对象的创建

android - 如何将单个 TextWatcher 用于多个 EditText?

android - EditText 的 setText() 在 onTextChanged 方法中不起作用

android - OnKeyListener() 不适用于三星 Galaxy S3

java - findViewById() 从 fragment 中返回 null - Android

android - 可在 EditText 中绘制的可单击复合图,单击时弹出 View

linux - Linux系统中的多个JRE

java - 如何使用 TO_DATE 将 Oracle 中的变量转换为日期类型

java - Eclipse 中出现很多错误

android - 在 vuforia 中建立识别度?