说实话,现在的水平提高了,app的美化也逐渐上升,一些恶心的ui也慢慢的浮出水面,来等我们程序员来填完这个坑,我这人比较懒,只有用到的时候才会开始搞,搞完就赶紧的分享给大家,哈哈。每日进一步,我要走多远
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginLeft="20dp"
android:layout_marginTop="30dp"
>
<EditText
android:id="@+id/ed1"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:layout_marginLeft="20dp"
android:gravity="center"
android:inputType="number"
android:maxLength="1"
android:numeric="integer" />
<EditText
android:id="@+id/ed2"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:layout_marginLeft="20dp"
android:gravity="center"
android:inputType="number"
android:maxLength="1"
android:numeric="integer" />
<EditText
android:id="@+id/ed3"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:layout_marginLeft="20dp"
android:gravity="center"
android:inputType="number"
android:maxLength="1"
android:numeric="integer" />
<EditText
android:id="@+id/ed4"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:layout_marginLeft="20dp"
android:gravity="center"
android:inputType="number"
android:maxLength="1"
android:numeric="integer" />
</LinearLayout>
下面是Activity实现代码,如果不清楚,先都拷下来,运行一下,你就明白了
代码其实很简单
private EditText ed1;
private EditText ed2;
private EditText ed3;
private EditText ed4;
int index = 1;
private EditText[] mArray;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initListener();
}
private void initView() {
ed1 = (EditText) findViewById(R.id.ed1);
ed2 = (EditText) findViewById(R.id.ed2);
ed3 = (EditText) findViewById(R.id.ed3);
ed4 = (EditText) findViewById(R.id.ed4);
}
private void initListener() {
mArray = new EditText[]{ed1, ed2, ed3, ed4};
for (int i = 0; i < mArray.length; i++) {
final int j = i;
mArray[j].addTextChangedListener(new TextWatcher() {
private CharSequence temp;
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
temp = s;
}
@Override
public void afterTextChanged(Editable s) {
if (temp.length() == 1 && j >= 0 && j < mArray.length - 1) {
mArray[j + 1].setFocusable(true);
mArray[j + 1].setFocusableInTouchMode(true);
mArray[j + 1].requestFocus();
}
if (temp.length() == 0) {
if (j >= 1) {
mArray[j - 1].setFocusable(true);
mArray[j - 1].setFocusableInTouchMode(true);
mArray[j - 1].requestFocus();
}
}
checkNumber();
}
});
}
}
public void checkNumber() {
if (!TextUtils.isEmpty(ed1.getText().toString().trim()) && !TextUtils.isEmpty(ed2.getText().toString().trim()) && !TextUtils.isEmpty(ed3.getText().toString().trim()) && !TextUtils.isEmpty(ed4.getText().toString().trim())) {
Toast.makeText(this, ed1.getText().toString().trim() + ed2.getText().toString().trim() + ed3.getText().toString().trim() + ed4.getText().toString().trim(), Toast.LENGTH_SHORT).show();
index++;
if (index % 2 == 0) {
for (EditText editText : mArray) {
editText.setText("");
}
ed1.setFocusable(true);
ed1.setFocusableInTouchMode(true);
ed1.requestFocus();
}
}
}