在Spinner项目中选择特定项目后,EditText希望从禁用变为启用。

4

我正在一个页面上使用Spinner、EditText和Button。Spinner有以下选项...

接下来:

 String[] Items = {
            "Alarm",
            "Office",
            "Meeting",
            "Party",
            "Lunch",
            "Breakfast",
            "Supper",
            "Home",
            "Private",
            "Outdoor",
            "Family",
            "Friends",
            "others"
    };

    Spinner s1;

如果我在下拉菜单中选择“其他”选项,那么只有编辑框需要启用,否则它必须被禁用。如果我选择其他选项,则编辑框必须被禁用。

代码片段:

s1 = (Spinner) findViewById(R.id.spinner);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_spinner_item, Items);

    s1.setAdapter(adapter);
    s1.setOnItemSelectedListener(new OnItemSelectedListener()
    {
        public void onItemSelected(AdapterView<?> arg0, 
        View arg1, int arg2, long arg3) 
        {
            int index = s1.getSelectedItemPosition();
            Toast.makeText(getBaseContext(), 
                "You have selected item : " + Items[index], 
                Toast.LENGTH_SHORT).show();                
        }

        public void onNothingSelected(AdapterView<?> arg0) {}
    });

谢谢您,

你的问题没有得到清晰的解释,请阅读你的描述并进行修改。 - ingsaurabh
2个回答

15

这样做:

    EditText edit = (EditText) findViewById(R.id.EditText01);
    edit.setEnabled(false);
    edit.setInputType(InputType.TYPE_NULL);
    edit.setFocusable(false);

当选择其他选项时,请执行此操作。

    edit.setEnabled(true);
    edit.setInputType(InputType.TYPE_CLASS_TEXT);
    edit.setFocusable(true);

@debar 感谢您的回答:抱歉重复这个问题,您能告诉我如何获取项目的值吗? - ezhil
不太明白你的意思。你想了解什么? - Debarati
1
@debarati 点击编辑框后它应该是可用的。但是启用后它不能输入...我无法在编辑框中键入任何内容,有什么问题? - ezhil
1
@debarati 我完成了,我使用了这个代码 'edit.setVisibility(View.VISIBLE);' 和 'edit.setVisibility(View.GONE);',现在运行得非常好,谢谢。 - ezhil
2
在调用setFocusable之前,您应该先调用setFocusableInTouchMode - oleg.semen
显示剩余3条评论

0

我假设您从Spinner中获取了值。

在使用条件获取值后,通过以下代码设置edittext的启用或禁用:

  EditText.setEnabled(BooleanValue);

true是默认值,而false会禁用EditText的编辑功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接