0

我是 android 开发的新手,在将开关设置为关闭后尝试使我的 editText 不可编辑时遇到了困难。问题是开关功能不起作用。即使将其设置为关闭,我仍然可以编辑文本。这是我的代码:

public void onCreate(Bundle savedInstanceState) {
        this.getWindow().setSoftInputMode(
                WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_profile);
        final View switch1 = (Switch) findViewById(R.id.editSwitch);
        final EditText mEdit = (EditText) findViewById(R.id.bioTxt);
        switch1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                if (switch1.getContext().toString().equals("On")) {

                    mEdit.setEnabled(true);
                }

                else if (switch1.getContext().toString().equals("Off")) {

                    EditText mEdit = (EditText) findViewById(R.id.bioTxt);
                    mEdit.setEnabled(false);
                }
            }
        });

    };
}
4

2 回答 2

2

SwitchisChecked()如果开关处于“打开”位置,则具有返回 true 的函数。因此,您的 onClick 方法可以是:

public void onClick(View v) {
    mEdit.setEnabled(switch1.isChecked());
}
于 2013-03-25T02:52:36.330 回答
0
switch1.getContext().toString()

你想在这里做什么?视图上的 getContext 返回拥有它的活动。它不会返回任何会变成“开”或“关”的东西。您需要调用其他一些函数。我不确定哪个,因为它看起来像是自定义视图。

于 2013-03-25T02:46:19.273 回答