【问题标题】:SetHint updates TextEdit only after OnClickListener (after clicking on button)SetHint 仅在 OnClickListener 后更新 TextEdit(单击按钮后)
【发布时间】:2016-06-22 17:32:26
【问题描述】:

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() {
...

【问题讨论】:

    标签: android


    【解决方案1】:

    你可以这样做

    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");
            }
        }
    });
    

    【讨论】:

    • 现在就是这样。 (我不知道为什么,因为我是在 OnClickListener 之外写的)。我希望在按下切换后立即更改提示。
    • @Anonymous 如果您认为这可以解决您的问题,请将其标记为正确答案。谢谢
    【解决方案2】:

    您当前仅检查切换的初始状态。单击它后,编辑文本不会更改提示。

    您可能希望在按钮上使用“setOnCheckedChangeListener”。它的实现类似于onClickListener。

    更多详情请见this question

    编辑:您说您希望仅在按下“提交”按钮后更改提示,但您还说您希望在更改“切换”时更改提示。无论您使用哪种方法(onCheck 或 onClick)都将取决于您的实际需求。

    【讨论】:

    • 感谢它的帮助。发布解决方案。
    【解决方案3】:
    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);
    

    【讨论】:

      猜你喜欢
      • 2020-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-14
      • 1970-01-01
      • 2021-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多