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