如何在复选框单击事件上启用和禁用我的编辑框

时间:2011-12-02 09:48:08

标签: android

我在初始化时启用edittext框时遇到问题。我已经禁用了我的编辑框,如下所示:text_edit.setFocusable(false);

稍后,我想通过单击复选框启用文本框。 文本框未启用,这是我的点击事件代码:

if(((CheckBox) v).isChecked()) {

    Toast.makeText(User_name_search .this, "Selected", Toast.LENGTH_SHORT).show();
    text_edit.setFocusable(false);
    //checkbox.setChecked(false);

} else {
    Toast.makeText(User_name_search .this, "Not Selected", Toast.LENGTH_SHORT).show();
    text_edit.setFocusable(true);
}

我做错了什么?

4 个答案:

答案 0 :(得分:1)

由于您要启用/禁用EditText,因此您应该考虑使用此处所述的setEnabled(boolean x)方法:http://developer.android.com/reference/android/widget/TextView.html#setEnabled%28boolean%29EditText extends TextView

希望这有帮助!

答案 1 :(得分:0)

您应该使用setOnClickListenersetOnCheckedChangeListener作为复选框,当有人点击时,您应该更改setfocusable

答案 2 :(得分:0)

您必须执行以下操作

Checkbox c1;
EditText e1;
click on check box c1 if

if(c1.isChecked==true)
{
e1.setEnabled(true);

} 
else
{
e1.setEnabled(false);

}

答案 3 :(得分:0)

在复选框的单击侦听器中,将edittext的enabled属性设置为true。因此,如果checkAbove是您的复选框,textAbove是您的editText,则代码将如下所示..

checkAbove.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        CheckBox temp = (CheckBox)view;
        if (temp.isChecked()){
            textAbove.setEnabled(true);
        }else {
            textAbove.setEnabled(false);
        }
    }
});

同时加上

android:editable = "false"

表示xml中的textAbove视图。