Android 如何为特定数字设置EditText侦听器?
我希望在应用程序中为我的Android 如何为特定数字设置EditText侦听器?,android,button,android-edittext,keyword,toast,Android,Button,Android Edittext,Keyword,Toast,我希望在应用程序中为我的EditText字段设置一个侦听器,它应该侦听我想到的特定行的数字 例如: 如果用户键入数字“12345”并按下按钮,则必须显示toast消息。如果用户键入的数字不是“12345”,则按钮必须运行其主功能 我希望它在我的应用程序中成为一个小小的复活节彩蛋。EditText允许您添加TextWatcher视图addTextChangedListener(TextWatcher): 假设您有: EditText mEditText = (EditText) findViewB
EditText
字段设置一个侦听器,它应该侦听我想到的特定行的数字
例如:
如果用户键入数字“12345”并按下按钮,则必须显示toast
消息。如果用户键入的数字不是“12345”,则按钮必须运行其主功能
我希望它在我的应用程序中成为一个小小的复活节彩蛋。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
}
});
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
}
});
添加一个ContextChanged侦听器
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)
{
}
});
添加一个ContextChanged侦听器
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)
{
}
});
只需使用If语句检查editText的值,如:
if(editText.getText().equals("12345"))
{
Toast.makeText(getApplicationContext(), "Message is 12345",Toast.LENGTH_SHORT).show();
}
希望有帮助。只需使用If语句检查editText的值,如:
if(editText.getText().equals("12345"))
{
Toast.makeText(getApplicationContext(), "Message is 12345",Toast.LENGTH_SHORT).show();
}
希望能有所帮助。关于@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();
}
比不必要的文本观察者更安全(更轻)
Ellaborating@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
editText.getText().equals(“12345”)?相比,更安全(更轻)但如何运行特定操作?只需维护一个允许的数字或文本列表,并在按钮的onClick侦听器中对其进行检查。只需放置一个if循环并运行特定操作。editText.getText().equals(“12345”)但如何运行特定操作呢?只需维护一个允许的数字或文本列表,并在按钮的onClick侦听器中对照它进行检查。只需放置一个if循环并运行特定操作。这里的任何答案都会起作用,谢谢:)!你的更干净。创建TextWatcher容易出现很多ANR,使用一种简单的方法获取文本更“安全”,但我会改进它。editText.getText().toString()只是为了安全;)说得好,对于toString()
方法。关于textWatcher我不会说太多,因为我还没有读到任何关于它的文章。但是,你知道很多程序员是怎么做的,如果可行的话。这里的任何答案实际上都是可行的,谢谢你:)!你的更干净。创建TextWatcher容易出现很多ANR,使用一种简单的方法获取文本更“安全”,但我会改进它。editText.getText().toString()只是为了安全;)说得好,对于toString()
方法。关于textWatcher我不会说太多,因为我还没有读到任何关于它的文章。但是,你知道很多程序员是怎么做的,如果可行的话。