0

我在列表视图中有一个editText。我使用了addTextChangedListener,在textChange之后我有一个条件,当它是真的我想禁用listView中的所有EditText,除了我使用TextChangeListener的那个

到目前为止,我在 myCustomAdapter 中有这个:

     myHolder.txt_Qty.addTextChangedListener(new TextWatcher() {

            public void onTextChanged(CharSequence s, int start,
                    int before, int count) {


            }

            public void beforeTextChanged(CharSequence s, int start,
                    int count, int after) {

            }

            public void afterTextChanged(Editable s) {
                if(isError == true){
                    Log.i("afterchange errorPos", String.valueOf(errorPos));
                    S_4th_SelectItem.lst_listOrder.getChildAt(errorPos).setBackgroundColor(Color.rgb(255, 153, 204));
                    S_4th_SelectItem.btn_Update.setEnabled(false);

                    myHolder.txt_Qty.setEnabled(false);

                    ((Activity) context).getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
                }else {
                    S_4th_SelectItem.btn_Update.setEnabled(true);

                }

            }
        });
4

3 回答 3

1

如果要默认禁用所有s 则在addTextChangedListenerEditText之前添加以下内容

myHolder.txt_Qty.setEnabled(false);
于 2013-10-08T07:06:08.230 回答
0

尝试这个..

myHolder.txt_Qty.addTextChangedListener(new TextWatcher() {

            public void onTextChanged(CharSequence s, int start,
                    int before, int count) {

                if(isError){
                    Log.i("afterchange errorPos", String.valueOf(errorPos));
                    S_4th_SelectItem.lst_listOrder.getChildAt(errorPos).setBackgroundColor(Color.rgb(255, 153, 204));
                    S_4th_SelectItem.btn_Update.setEnabled(false);

                    myHolder.txt_Qty.setEnabled(false);

                    ((Activity) context).getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
                }else {
                    S_4th_SelectItem.btn_Update.setEnabled(true);

                }
            }

            public void beforeTextChanged(CharSequence s, int start,
                    int count, int after) {

            }

            public void afterTextChanged(Editable s) {


            }
        });
于 2013-10-08T07:07:25.787 回答
0

Waqas 的答案将起作用,另一个非常昂贵的解决方案是遍历所有其他列表项并禁用其中的每个 EditText,不太优雅但可以完成工作。

于 2013-10-08T07:08:15.697 回答