如何通过微调器选择使edittext成为可编辑和不可编辑的

时间:2013-07-30 08:13:30

标签: android android-edittext

我需要根据微调器值更改edittext 它适用于keylistener(null)非可编辑但我无法将其恢复,因为焦点不应该从edittext中删除我不使用此setEnabled方法 我正在使用此代码

    sp_card.setOnItemSelectedListener(new OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> parent, View arg1,
                final int pos, long arg3) {
            if (filteredCardsList.get(pos).awardPointsRatio != null
                    && filteredCardsList.get(pos).awardPointsRatio == 0.0) {
                et_award_points.setText("");
                et_award_points.setHint("No ratio is available");
                et_award_points.setKeyListener(et_award_points
                        .getKeyListener());
            } else {
                et_award_points.setKeyListener(null);
            }
        }

        public void onNothingSelected(AdapterView<?> arg0) {

        }
    });

此处et_award_points始终变为不可编辑的字段,而不会更改为其状态

3 个答案:

答案 0 :(得分:1)

使用editTextInstance.setEnabled(true)使其可编辑,editTextInstance.setEnabled(false)禁用

答案 1 :(得分:1)

试试这个代码。它有效。

private KeyListener listener;
listener = et_award_points.getKeyListener();
et_award_points.setKeyListener(listener);

答案 2 :(得分:0)

将按钮更改为ToggleButton并实现此代码,这应该是我认为最好的解决方案

button.setOnCheckedChangeListener(new OnCheckedChangeListener() {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            editText.setEnabled(isChecked);
        }
    });