我的应用只包含一个文本字段,只要#34; 1"按下它,"你好,世界"进一步写在上面。我用过:
et.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_1)) {
et.setText("Hello, world!");
current_string = et.getText().toString();
length = current_string.length();
et.setSelection(length);
return true;
}
return false;
}
});
但我想改用TextWathcer。我使用:
et1.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after)
}
@Override
public void afterTextChanged(Editable s) {
//if statement here I guess
et.setText(et.getText() + "Hello, world");
}
});
但是我在查找if语句时遇到了一些问题。你能给我一些提示吗?非常感谢
答案 0 :(得分:2)
当您输入' 1'关键,你想展示' Hellow World'在TextView上。是吗?
@Override
public void afterTextChanged(Editable s) {
//if statement here I guess
et.setText(et.getText() + "Hello, world");
}
可编辑的s将返回您在Textfield上输入的文本。我想如果你只使用TextViews,
上一个将是解决它的更好方法。我想帮助你,一起搞清楚!!
更新1:
@Override
public void afterTextChanged(Editable s) {
if(s.toString().equals('1')){
et.setText(s.toString() + "Hello, world");
}
//et.setText(et.getText() + "Hello, world");
}
更新2:
@Override
public void afterTextChanged(Editable s) {
if(s.toString().contains("1")){
et.setText(s.toString().replace("1", "Hellow World"));
}
//et.setText(et.getText() + "Hello, world");
}
我希望它能运作良好。