Reputation: 13
I'm quite new in android and I don't know if it's possible that when user enters sth in edittext it trigers another method.
like EDİT When I run this in onCrate it crashes
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
anyStringEntered();
}
my methods that checks if there is any change on Edittext
public void anyStringEntered(){
userName = (EditText) findViewById(R.id.userNameTextBox);
userPassword = (EditText) findViewById(R.id.userPasswordTextBox);
rememberMe= (CheckBox) findViewById(R.id.checkBox1);
userName.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) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
if(!userPassword.getText().toString().equals("") && !userName.getText().toString().equals("")){
rememberMe.setEnabled(true);
}else{
rememberMe.setEnabled(false);
}
}
});
userPassword.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) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
if(!userPassword.getText().toString().equals("") && !userName.getText().toString().equals("")){
rememberMe.setEnabled(true);
}else{
rememberMe.setEnabled(false);
}
}
});
}
Upvotes: 0
Views: 795
Reputation: 734
It is what you are looking for ?
editTextLogin.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
if(edittext.gettext()!="")
{ myMethod(); }
else {
myMethod2();
}
}
};
Upvotes: 0
Reputation: 7892
Use the TextWatcher:
edittext.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {
//method1()
}
public void beforeTextChanged(CharSequence s, int start, int count, int after){
//method2()
}
public void onTextChanged(CharSequence s, int start, int before, int count){
//method3()
}
});
Upvotes: 2