EditText焦点跟踪和删除

时间:2013-09-05 05:56:02

标签: android

我有三个EditBox,在一个框中输入一个数字后设置下一个焦点的最佳方法是什么,然后跟踪从box3到box2再到box1或从中删除(向后)的最佳方法是什么box3,to box2然后如果我尝试输入一些东西到box3,将其聚焦并在box3上输入新号码,如果box2已经有了东西。

我想从这个问题开始,这比我在这里发布的内容简单得多:(你可以看到我在那里尝试的东西,但我想如果我得到了基本的想法,我可以把它拉下来。)< / p>

posting with details for issue

我只是在使用两个不同的东西时遇到一个大问题,OnkeyListener用于删除,而TextWatch用于输入,我似乎无法正确使用它。 Android新手。

1 个答案:

答案 0 :(得分:1)

这里我给你一个简单的例子,其中有3个Editbox,每个编辑框和每个编辑框分别显示移动电话号码3,3,4位数字。改变焦点。

XML

            <EditText
                android:id="@+id/edtxt_phonenumber_one"
                android:layout_width="wrap_content"
                android:layout_height="39dp"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:background="@drawable/textbox_1"
                android:ems="3"
                android:maxLength="3"
                android:gravity="center"
                android:inputType="number" />

            <EditText
                android:id="@+id/edtxt_phonenumber_two"
                android:layout_width="wrap_content"
                android:layout_height="39dp"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:background="@drawable/textbox_1"
                android:ems="3"
                 android:maxLength="3"
                android:gravity="center"
                android:inputType="number" />

            <EditText
                android:id="@+id/edtxt_phonenumber_three"
                android:layout_width="wrap_content"
                android:layout_height="39dp"
                android:layout_margin="5dp"
                android:layout_weight="1"
                android:background="@drawable/textbox_1"
                android:ems="4"
                 android:maxLength="4"
                android:gravity="center"
                android:inputType="number" />
        </LinearLayout>

//Initialize 3 of EditBox.

// Rest of te code

edtxt_phonenumber1.addTextChangedListener(new TextWatcher() {
            public void afterTextChanged(Editable s) {

                if (s.length() > 2) {
                    edtxt_phonenumber2.requestFocus();
                }
                            if (s.length()==0) {
                //previoue_box.requestFocus();
            }
            }

            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
            }

            public void onTextChanged(CharSequence s, int start, int before,
                    int count) {
            }
        });

        edtxt_phonenumber2.addTextChangedListener(new TextWatcher() {
            public void afterTextChanged(Editable s) {
                if (s.length() > 2) {
                    edtxt_phonenumber3.requestFocus();
                }
                            if (s.length()==0) {
                edtxt_phonenumber1.requestFocus();
            }
            }

            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {


            }

            public void onTextChanged(CharSequence s, int start, int before,
                    int count) {

            }
        });
        edtxt_phonenumber3.addTextChangedListener(new TextWatcher() {
            public void afterTextChanged(Editable s) {
                if (s.length() > 3) {
                    edtxt_email.requestFocus();
                }
                            if (s.length()==0) {
                edtxt_phonenumber2.requestFocus();
            }
            }

            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {


            }

            public void onTextChanged(CharSequence s, int start, int before,
                    int count) {


            }
        });

希望它有所帮助!!