SetHint仅在OnClickListener之后更新TextEdit(在单击按钮之后)

时间:2016-06-22 17:32:27

标签: android

SetHint仅在OnClickListener之后更新TextEdit(在单击按钮之后)在我的情况下,当用户在TextEdit中键入一些文本并激活切换时,提示将仅在他/她提交按钮被按下后才会更改。例如,如果我按下Toggle,则提示将与原始提示相同。

我想在切换设置打开或关闭后立即使SetHint工作。想要将TextEdit中的提示更改为"自定义文本"在我按下切换之后。否则我希望TextEdit保留原始提示文本。不确定我是否需要在其他地方更改它,因为我在布局中使用相同的提示文本。

public class MainActivity extends Activity {
    private Button button;
    private TextEdit text;
    private ToggleButton toggle;


    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout);

text = (TextEdit) findViewById(R.id.myid);
toggle = (ToggleButton) findViewById(R.id.myid2);
        if (toggle.isChecked()) {
            text.setHint("Custom Text");
        } else {
            text.setHint("Text");
        }
            button.setOnClickListener(new View.OnClickListener() {
...

3 个答案:

答案 0 :(得分:0)

你可以这样做

button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // change the hint text when click in button
        if (toggle.isChecked()) {
            text.setHint("Custom Text");
        } else {
            text.setHint("Text");
        }
    }
});

答案 1 :(得分:0)

您目前只检查切换的初始状态。点击它后,编辑文字不会改变提示。

您可能正在寻找" setOnCheckedChangeListener"在按钮上。它的实现类似于onClickListener。

有关详细信息,请参阅this question

编辑:你说你希望提示只有在"提交"之后才能改变。按下按钮,但你也说过你想要在"切换"改变了。无论您使用哪种方法(onCheck或onClick)都取决于您的实际需求。

答案 2 :(得分:0)

toggle = (ToggleButton) findViewById(R.id.myid2);
        final CompoundButton.OnCheckedChangeListener toggleButtonChangeListener = new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (toggle.isChecked()) {
                    text.setHint("Custom Text");
                } else {
                    text.setHint("Text");
                }

            }
        };
        toggle.setOnCheckedChangeListener(toggleButtonChangeListener);