我想要一个应用程序中的EditText
字段的监听器,该监听器应该监听我想到的特定行数。
例如:
如果用户输入数字“12345”并按下按钮,则必须显示toast
消息。如果用户输入的数字不是“12345”,则button
必须运行其主要功能。
我想把它作为我申请中的一个小蛋复活节彩蛋。
答案 0 :(得分:2)
EditText允许您添加TextWatcher视图addTextChangedListener(TextWatcher):
假设你有:
EditText mEditText = (EditText) findViewById(R.id.my_edit_text);
然后我们可以添加一个TextWatcher:
// Add the TextChangeListener which is a TextWatcher
mEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//... For listening to text on the fly
if(s.toString().equals("12345")){
Toast.makeText(MyActivity.this, "Some message" Toast.LENGHT_SHORT).show();
}
}
@Override
public void afterTextChanged(Editable s) {
//... for a callback after text is changed
}
});
答案 1 :(得分:1)
在@ Kristo1990上回答:
EditText editText = (EditText) findViewById(R.id.my_edit_text);
然后按下按钮:
if (editText.getText().toString().equals("12345")) {
Toast.makeText(getApplicationContext(), "Message is 12345", Toast.LENGTH_SHORT).show();
} else {
someOtherMethod();
}
更安全(和更轻)然后是不必要的TextWatcher
。
答案 2 :(得分:0)
添加onTextChanged侦听器
mEditText.addTextChangedListener(new TextWatcher()
{
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after)
{
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
if(mEditText.getText().toString().equals("12345"))
//do stuff
}
@Override
public void afterTextChanged(Editable s)
{
}
});
答案 3 :(得分:0)
只需使用If语句检查editText的值,例如:
if(editText.getText().equals("12345"))
{
Toast.makeText(getApplicationContext(), "Message is 12345",Toast.LENGTH_SHORT).show();
}
希望它有所帮助。