下面是Activiy,UI部分是6个EditText,在此就不贴出:
/**
*
* @author lm
*
*/
public class IdentifyActivity extends Activity {
private EditText mEditTextOne, mEditTextTwo, mEditTextThree, mEditTextFour, mEditTextFive, mEditTextSix;
private static final String TAG = "miao";
boolean b = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
initView();
}
public void initView() {
mEditTextOne = (EditText) findViewById(R.id.main_one);
mEditTextTwo = (EditText) findViewById(R.id.main_two);
mEditTextThree = (EditText) findViewById(R.id.main_three);
mEditTextFour = (EditText) findViewById(R.id.main_four);
mEditTextFive = (EditText) findViewById(R.id.main_five);
mEditTextSix = (EditText) findViewById(R.id.main_six);
int one = mEditTextOne.getText().toString().replace(" ", "").length();
int Two = mEditTextTwo.getText().toString().replace(" ", "").length();
int Three = mEditTextThree.getText().toString().replace(" ", "").length();
int Four = mEditTextFour.getText().toString().replace(" ", "").length();
int Five = mEditTextFive.getText().toString().replace(" ", "").length();
int Six = mEditTextSix.getText().toString().replace(" ", "").length();
if(one == 0 && Two == 0 && Three == 0 && Four == 0 && Five == 0 && Six == 0){
Log.i(TAG, "------空空空-----");
mEditTextOne.setFocusable(true);
mEditTextTwo.setFocusable(false);
mEditTextThree.setFocusable(false);
mEditTextFour.setFocusable(false);
mEditTextFive.setFocusable(false);
mEditTextSix.setFocusable(false);
}
mEditTextOne.addTextChangedListener(mTextWatcher);
mEditTextTwo.addTextChangedListener(mTextWatcher);
mEditTextThree.addTextChangedListener(mTextWatcher);
mEditTextFour.addTextChangedListener(mTextWatcher);
mEditTextFive.addTextChangedListener(mTextWatcher);
mEditTextSix.addTextChangedListener(mTextWatcher);
}
TextWatcher mTextWatcher = new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
if(arg0.length()==1){
if(mEditTextOne.isFocusable()){
mEditTextTwo.setFocusable(true);
mEditTextTwo.setFocusableInTouchMode(true);
}else if(mEditTextTwo.isFocusable()){
mEditTextThree.setFocusable(true);
mEditTextThree.setFocusableInTouchMode(true);
}else if(mEditTextThree.isFocusable()){
mEditTextFour.setFocusable(true);
mEditTextFour.setFocusableInTouchMode(true);
}else if(mEditTextFour.isFocusable()){
mEditTextFive.setFocusable(true);
mEditTextFive.setFocusableInTouchMode(true);
}else if(mEditTextFive.isFocusable()){
mEditTextSix.setFocusable(true);
mEditTextSix.setFocusableInTouchMode(true);
}
}
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
}
@Override
public void afterTextChanged(Editable mEditable) {
if (mEditable.toString().length() == 1) {
if (mEditTextOne.isFocused()) {
mEditTextOne.setFocusable(false);
mEditTextTwo.requestFocus();
}else if (mEditTextTwo.isFocused()) {
mEditTextTwo.setFocusable(false);
mEditTextThree.requestFocus();
}else if(mEditTextThree.isFocused()){
mEditTextThree.setFocusable(false);
mEditTextFour.requestFocus();
}else if(mEditTextFour.isFocused()){
mEditTextFour.setFocusable(false);
mEditTextFive.requestFocus();
}else if(mEditTextFive.isFocused()){
mEditTextFive.setFocusable(false);
mEditTextSix.requestFocus();
}else if(mEditTextSix.isFocused()){
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mEditTextSix.getWindowToken(), 0);
getEditNumber();
}
}
}
};
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_DEL) {
if(mEditTextSix.isFocused()){
if (!mEditTextSix.getText().toString().equals("")) {
mEditTextSix.getText().clear();
mEditTextSix.requestFocus();
b = false;
} else if (!b) {
mEditTextSix.clearFocus();
mEditTextSix.setFocusable(false);
mEditTextFive.setFocusableInTouchMode(true);
mEditTextFive.getText().clear();
mEditTextFive.requestFocus();
b = true;
} else {
mEditTextSix.getText().clear();
mEditTextSix.requestFocus();
b = false;
}
} else if (mEditTextFive.isFocused()) {
mEditTextFive.clearFocus();
mEditTextFive.setFocusable(false);
mEditTextFour.setFocusableInTouchMode(true);
mEditTextFour.getText().clear();
mEditTextFour.requestFocus();
} else if (mEditTextFour.isFocused()) {
mEditTextFour.clearFocus();
mEditTextFour.setFocusable(false);
mEditTextThree.setFocusableInTouchMode(true);
mEditTextThree.getText().clear();
mEditTextThree.requestFocus();
} else if (mEditTextThree.isFocused()) {
mEditTextThree.clearFocus();
mEditTextThree.setFocusable(false);
mEditTextTwo.setFocusableInTouchMode(true);
mEditTextTwo.getText().clear();
mEditTextTwo.requestFocus();
} else if (mEditTextTwo.isFocused()) {
mEditTextTwo.clearFocus();
mEditTextTwo.setFocusable(false);
mEditTextOne.setFocusableInTouchMode(true);
mEditTextOne.getText().clear();
mEditTextOne.requestFocus();
}
}
if(keyCode == KeyEvent.KEYCODE_BACK){
this.finish();
}
return false;
}
public String getEditNumber() {
String number = mEditTextOne.getText().toString();
number += mEditTextTwo.getText().toString();
number += mEditTextThree.getText().toString();
number += mEditTextFour.getText().toString();
number += mEditTextFive.getText().toString();
number += mEditTextSix.getText().toString();
Log.i(TAG, "-----number---"+number+"---------------number.length-----"+number.length());
return number;
}
}