项目当中的要求很多,最近遇到了一些要求,在Dialog上用户输入密码,当密码位数达到6位并且自动判断密码是否正确,如果正确Dialog自动消失,跳转其他界面。 看似很艰难,其实只要你知道有这样一个监听就简单多了。这个监听就是addTextChangedListener(EditText s).
public class EditTextActivity extends Activity implements OnClickListener{
private EditText adb_password;
public boolean change = false;
private LinearLayout adb_lin2;
private Button button1;
private Button button2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.kvadb);
adb_password = (EditText) findViewById(R.id.adb_password);
adb_lin2 = (LinearLayout) findViewById(R.id.adb_lin2);
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button1.setOnClickListener(this);
button2.setOnClickListener(this);
adb_password.addTextChangedListener(mEditText);
}
TextWatcher mEditText = new TextWatcher() {
private CharSequence temp;
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
temp = s;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
adb_password.setVisibility(View.VISIBLE);
adb_lin2.setVisibility(View.GONE);
}
@Override
public void afterTextChanged(Editable s) {
if(adb_password.getText().length() == 6){
if(adb_password.getText().toString().equals("111111")){
adb_password.setVisibility(View.GONE);
adb_password.setFocusableInTouchMode(false);
adb_password.setFocusable(false);
adb_lin2.setVisibility(View.VISIBLE);
adb_lin2.setFocusableInTouchMode(true);
button1.requestFocus();
}
}
}
};
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
Toast.makeText(KvAdb.this, "llll", 0).show();
break;
case R.id.button2:
finish();
break;
}
}
}